调用两个具有相同类和方法名称的jar的Java类

时间:2020-05-06 13:47:32

标签: java

编辑:我有一个Java类,它调用两个具有相同类和方法名称的jar。 我们可以这样实现吗? JVM如何知道选择哪个正确的类

import com.jar.Myclass; // should go to jar 1
import com.jar.Myclass; // should go to jar 2

public class Test {
public void getDetails(){
  if (true){
    Myclass.getDetails(); // should go and look in jar 1 
 }else {
    Myclass.getDetails(); // should go and look in jar 2 
  }
}

}

对此专家的任何建议

1 个答案:

答案 0 :(得分:2)

编辑:此后已对问题进行了编辑,以询问两个具有相同FQCN的类。此答案不适用于这个新问题。

如果简单名称相同,但包名称不同,则为简单起见,您应该导入一个并完全将每个引用都完全等同于另一个,甚至完全将所有引用都完全简化:

public class Test {
  public void getDetails(){
     if (true){
      com.jar1.MyClass.getDetails(); // should go and look in jar 1 
    }else {
      com.jar2.MyClass.getDetails(); // should go and look in jar 2 
    }
  }
}

请注意,import除了提供简单的短名称(MyClass)而不是完全限定的名称(com.jar1.MyClass)以外没有其他用途。对于运行时本身,仅存在完全限定的类名(FQCN)。导入仅用于编译器。