java不同包名相同类名冲突只能重命名类名吗??

场景1

假设有:

one
    Test.java
two
    Test.java
App.java

这样一个目录结构。App.java 是入口,内容如下:

// 报错! one.Test 和 two.Test 冲突
import one.Test;
import two.Test;

public class App {
    public static void main(String[] args){
        // 对 one.Test 的调用
        // 对 two.Test 的调用
    }
}

如上面这种情况,不同包名相同类名如何解决??只能采取对冲突类进行重命名吗??或是采取全路径的方式进行引用吗??

阅读 16.3k
4 个回答

你已经说了很好的解决办法了,还有个不是很好的就是自定义classloader

自定义classloader可以解决。

新手上路,请多包涵

因为你有2个一样的对象名称Test,都import进来的时候java编译器不知道你调用的是哪一个。所以如果2个类名相同的时候一个用import,一个用全名称。不同类名可以import就没有问题。

Java 没有usingtypedef之类的重命名,只能把包名写全了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题