Is this how Java package imports are supposed to w

2020-02-14 18:07发布

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....

4条回答
聊天终结者
2楼-- · 2020-02-14 18:46

No, package imports only get the direct classes in that package (java.* will not import everything, only ones such as Java.SomeClass, not java.util.SomeClass)

查看更多
手持菜刀,她持情操
3楼-- · 2020-02-14 18:52

See a link and a quoted excerpt from the link below.

http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html

Importing java.awt.* imports all of the types in the java.awt package, but it does not import java.awt.color, java.awt.font, or any other java.awt.xxxx packages. If you plan to use the classes and other types in java.awt.color as well as those in java.awt, you must import both packages with all their files:

import java.awt.*;
import java.awt.color.*;
查看更多
贼婆χ
4楼-- · 2020-02-14 19:01

Importing java.util.* will not import java.util.*.*.

查看更多
对你真心纯属浪费
5楼-- · 2020-02-14 19:06

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.

查看更多
登录 后发表回答