powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / приоритет выбора подходящего метода.
6 сообщений из 6, страница 1 из 1
приоритет выбора подходящего метода.
    #38526301
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос из теста.

надо предсказать вывод.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public class Main { 
    public static void var(Integer x, int y) { 
        System.out.println("Integer int"); 
    } 

    public static void var(Object... x) { 
        System.out.println("Object"); 
    } 

    public static void var(int... x) { 
        System.out.println("int... x"); 
    } 

    public static void var(Integer... x) { 
        System.out.println("Integer..."); 
    } 

    public static void main(String... args) {  
        int i = 0; 
        Integer i2 = 127; 
        var(i, i2); 
    } 
} 



Большая просьба не кидаться ссылками на спецификации, а пошагово объяснить как решается такая задачка.

Спасибо.
...
Рейтинг: 0 / 0
приоритет выбора подходящего метода.
    #38526323
Nitica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90,

скомпилить и запустить :) Вывод будет "Integer int". Помню подобные вопросы в эмуляторе enthuware. Там в комментах было прописано что-то вроде такого правила: чем точнее сигнатура описывает входные параметры, тем предпочтительнее. Так как примитивы всё равно обертываются в соответствующие объектные типы, то сигнатуры void var(int... x) и void var(Integer... x) в данном коде аналогичны и могут привести к ошибкам компиляции. В итоге такой порядок:
"Integer int" > "Integer..." или "int... x" > "Object"
...
Рейтинг: 0 / 0
приоритет выбора подходящего метода.
    #38526327
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В JLS по поводу overload-ов так и написано. Выбирается the most specific метод.
int... x и Integer... x эквивалентны. Если оба являются подходящими и нет более специфичных, то будет ошибка компиляции.
...
Рейтинг: 0 / 0
приоритет выбора подходящего метода.
    #38526343
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне бы правило как понимать какой метод более специфичный.
...
Рейтинг: 0 / 0
приоритет выбора подходящего метода.
    #38526353
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90мне бы правило как понимать какой метод более специфичный.
Тот который более конкретно описан. Уже третий вариант ответа, как вам ещё объяснить? Я бы рекомендовал все же взять JLS и вдумчиво почитать нужные разделы.
...
Рейтинг: 0 / 0
приоритет выбора подходящего метода.
    #38526357
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / приоритет выбора подходящего метода.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]