gpt4 book ai didi

java - 不同包中的相同类名

转载 作者:太空狗 更新时间:2023-10-29 22:42:55 24 4
gpt4 key购买 nike

同一个类可以存在于多个包中吗?换句话说,我可以在 com.test.package1com.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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com