Is this how Java package imports are supposed to w

2020-02-14 18:04发布

问题:

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

回答1:

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.



回答2:

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:

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



回答4:

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