Я пытаюсь сформулировать правила, которые используются в приведенных ниже сценариях. Пожалуйста, объясните, почему я получаю 2 разных результата.Перегрузка метода примитивами и их обертками
Сценарий 1: Я - объект.
class Test {
public static void main (String[] args) {
Test t = new Test();
byte b_var = 10;
t.do_the_test(b_var);
}
public void do_the_test(Character c) {
System.out.println("I am a character.");
}
public void do_the_test(Integer i) {
System.out.println("I am an integer.");
}
public void do_the_test(Object obj) {
System.out.println("I am an object.");
}
}
Сценарий 2 Выход: Я целое.
class Test {
public static void main (String[] args) {
Test t = new Test();
byte b_var = 10;
t.do_the_test(b_var);
}
public void do_the_test(char c) {
System.out.println("I am a character.");
}
public void do_the_test(int i) {
System.out.println("I am an integer.");
}
public void do_the_test(Object obj) {
System.out.println("I am an object.");
}
}
Можете ли вы объяснить, как примитивный тип может быть сопоставлен классу Object в качестве суперкласса примитивного типа, является нулевым, а не Object, а затем как он сопоставляет вызов метода с использованием объекта как параметра. – Jayesh
Он сначала преобразуется в объект путем преобразования автобоксинга. –