Java класс, вызывающий две банки с одинаковым именем класса и метода - PullRequest
0 голосов
/ 06 мая 2020

РЕДАКТИРОВАТЬ: у меня есть класс java, который вызывает две банки с одинаковым именем класса и метода. Можно ли это реализовать? как 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 Ответ

2 голосов
/ 06 мая 2020

Изменить: с тех пор вопрос был отредактирован, чтобы задать два класса с одинаковым 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). Импорт предназначен исключительно для компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...