为什么没有导入类就创建了对象?

Cod*_*bie 2 java import class

我遇到了一些java代码,其中包含以下语句.

com.myproject.bar.Foo foo = new com.myproject.bar.Foo();
Run Code Online (Sandbox Code Playgroud)

该类com.myproject.bar.Foo尚未导入到类中,但是Foo在写入此语句的类中创建了一个对象.

为什么要实施这样的实施?使用这样的实现比进行类的导入有什么好处Foo吗?

Kon*_*kov 7

它是使用类的完全限定名称进行实例化的.

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)

  • *有时当有几个具有同一个简单名称的类时使用它.*对你的**是一个很好的答案?为什么?**:) (2认同)

Jon*_*eet 5

import语句只是通过其短名称使类型可用而不指定包.就是这样.如果没有导入,就不能使用该类.

通常使用导入更清楚,但有时这是不可能的 - 例如,您可能想要使用两个类,这两个类都Foo来自具有相同类的不同包.(当您有两个相同实体的表示时,这是最常见的 - 例如,API表示和存储表示.)

在不知道真实代码是什么样的情况下,我们无法判断这是否属于这种情况,或者导入是否合适.如果它可以工作,导入通常更具可读性.