我遇到了一些java代码,其中包含以下语句.
com.myproject.bar.Foo foo = new com.myproject.bar.Foo();
Run Code Online (Sandbox Code Playgroud)
该类com.myproject.bar.Foo
尚未导入到类中,但是Foo
在写入此语句的类中创建了一个对象.
为什么要实施这样的实施?使用这样的实现比进行类的导入有什么好处Foo
吗?
它是使用类的完全限定名称进行实例化的.
com.myproject.bar.Foo foo = new com.myproject.bar.Foo();
Run Code Online (Sandbox Code Playgroud)
这不需要添加import
语句,因为您已经告诉编译器哪个是您想要实例化的类的包.
有时这是在有几个具有同一个简单名称的类时使用的.
如果你想这样做:
Foo foo = new Foo();
Run Code Online (Sandbox Code Playgroud)
那么你将不得不导入类:
import com.myproject.bar.Foo;
Run Code Online (Sandbox Code Playgroud)
import语句只是通过其短名称使类型可用而不指定包.就是这样.如果没有导入,就不能使用该类.
通常使用导入更清楚,但有时这是不可能的 - 例如,您可能想要使用两个类,这两个类都Foo
来自具有相同类的不同包.(当您有两个相同实体的表示时,这是最常见的 - 例如,API表示和存储表示.)
在不知道真实代码是什么样的情况下,我们无法判断这是否属于这种情况,或者导入是否合适.如果它可以工作,导入通常更具可读性.