这是 Java 包导入应该如何工作的吗?

2022-01-13 00:00:00 package import java

我一直在为我的第一个正则表达式而苦苦挣扎.在编译过程中,PatternMatcher不断出现cannot find symbol错误.

我刚刚将 import java.util.* 更改为 import java.util.regex.*,它就像在做梦一样.

我的印象是 importing java.util.* 会也引入 java.util.*.* 等.不是这样吗?我找不到任何解决这个特定问题的文档......

解决方案

是的,这就是包导入在 Java 中的工作方式(并且应该工作).例如,执行 import javax.swing.*; 将导入 javax.swing.* 中的所有 classes 但 不是 子包及其类.

所以,javax.swing.* 将 not 导入 javax.swing.eventjavax.swing.event.*

阅读以下博客以获得一些友好的新手建议.p>

I've been struggling with my first regex. During the compile, Pattern and Matcher kept getting cannot find symbol errors.

I just changed import java.util.* to import java.util.regex.* and it works like a dream.

I was under the impression that importing java.util.* would also bring in java.util.*.* etc. Is that not the case? I can't find any documentation that addresses this specific question....

解决方案

Yes, that is how package imports work (and are supposed to work) in Java. For example, doing import javax.swing.*; will import all classes within javax.swing.* but not sub-packages and their classes.

Ergo, javax.swing.* will not import javax.swing.event or javax.swing.event.*

Read the following blog for some friendly newbie advice.

相关文章