Как принудительно вызвать не лучший метод соответствия, если в Java совпадает несколько методовJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как принудительно вызвать не лучший метод соответствия, если в Java совпадает несколько методов

Сообщение Anonymous »

Я знал, что Java вызовет метод наилучшего соответствия, если сопоставлено несколько методов. Обратитесь к коду ниже: можно ли принудительно вызвать метод не наилучшего соответствия без изменения сигнатуры метода?

Код: Выделить всё

public static class Example {

public static  Example example(T data) {
return null;
}

public static  Example example(String msg) {
return null;
}

public static  Example example(String... args) {
return null;
}

public static void example() {
Example msgExample = example("msg");

// how to call `result(T data)` instead `result(String msg)` ?
Example dataExample = example("data");
// working but required double casting
Example dataExampleByCasting = (Example) ((Example) example((Object) "data"));

// how to call `result(String... args)` instead `result(String msg)` ?
Example argsExample = example("args");
// working but required new array
Example argsExampleByNewArray = example(new String[]{"args"});
}

}
ОБНОВЛЕНИЕ
Я пытаюсь перефразировать объяснение моего вопроса, а поля в примере опущены.
Эти методы имеют разную семантику:
  • Код: Выделить всё

    example(T data)
    : данные означает, что данные необходимо вернуть, но значения полей, таких как статус и информация, фиксированы, например, успешный запрос
  • Код: Выделить всё

    example(String msg)
    : msg означает сообщение об ошибке, и в данный момент не требуется возвращать никакие данные, например, сбой запроса
  • Код: Выделить всё

    example(String... args)
    : args расширен на основе двух вышеуказанных случаев для дополнительной обработки
Теперь если data имеет тип String, example(T data) не может быть вызвана из-за правила наилучшего соответствия, это аналогично, пока args имеет только один параметр.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ed-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»