作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
同一个类可以存在于多个包中吗?换句话说,我可以在 com.test.package1
和 com.test.package2
中有 Foo.java
类吗?
更新
现在我从包 1 复制类并放入包 2,现在我正在创建该类的一个实例,我希望这个实例指向包 1 中存在的类,但目前它指向包 1 路径,我怎么能修改它?
哦,所以我不能做这样的事情:
Foo = new Foo() // pointing to Foo class in package 1
Foo = new Foo() // pointing to Foo class in package 2
最佳答案
是的,您可以在多个包中拥有两个同名的类。但是,您不能使用两个 import
语句将两个类导入到同一个文件中。如果您确实需要引用这两个类名,则必须完全限定其中一个类名。
例子:假设你有
pkg1/SomeClass.java
package pkg1;
public class SomeClass {
}
pkg2/SomeClass.java
package pkg2;
public class SomeClass {
}
和Main.java
import pkg1.SomeClass; // This will...
import pkg2.SomeClass; // ...fail
public class Main {
public static void main(String args[]) {
new SomeClass();
}
}
如果你尝试编译,你会得到:
$ javac Main.java
Main.java:2: pkg1.SomeClass is already defined in a single-type import
import pkg2.SomeClass;
^
1 error
然而确实编译:
import pkg1.SomeClass;
public class Main {
public static void main(String args[]) {
new SomeClass();
new pkg2.SomeClass(); // <-- not imported.
}
}
关于java - 不同包中的相同类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4055634/
现在我正在尝试实现 flash programming specification对于 PIC32MX。我正在使用 PIC32MX512L 和 PIC32MX512H。 PIC32MX512L最终必须
我是一名优秀的程序员,十分优秀!