2013-10-08 3 views
7

Я изучаю некоторые экзамены Java, и я наткнулся на этот вопрос:призывание порядка перегруженных методов в JAVA

//Write the output of this program: 

public static void method(Integer i) { System.out.println("Integer"); } 
public static void method(short i) { System.out.println("short"); } 
public static void method(long i) { System.out.println("long"); } 
//... 
public static void main(String []args) { 
method(10); 
} 

//ANSWER: long 

Объяснение описывает, что для целого литерала, виртуальная машина соответствует в следующем порядке: ИНТ , длинное целое. Поскольку нет метода с параметром типа int, он ищет длинный тип; и так далее.

В этом объяснении они предоставляют только порядок для int, long и Integer. , так что мой вопрос: что представляет собой полный список заказов, когда целочисленный литерал вводится в методе, который перегружен для каждого типа (который использует целые числа)?

Кроме того, что порядок для поплавка, двойной и т.д ...? (Десятичные значения)

+1

Вот он - http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2 –

ответ

3

Полный список может быть INT, длинные, с плавающей точкой, двойной, целое число, номер/Сопоставимые/Сериализуемый, объект.

Примечание: число, сравнимое и последовательное значение являются неоднозначными. Для выбора одного из них потребуется явное приведение.

+0

Это не заняло более 1 секунды после завершения мой вопрос, когда я получил ответ LOL, СПАСИБО! –

+0

@HugoMedina Принял мне 4 минуты, чтобы проверить это. ;) –

+0

как насчет «короткого» типа? –

Смежные вопросы