, проходя через Autoboxing и unboxing в java, я узнал, что Java преобразует примитивные типы данных в класс Wrapper и наоборот, когда это необходимо. например если функция принимает Integer
как параметр, если мы передаем значение как 1
, тогда компилятор java преобразует его в new Integer(1)
. теперь ниже мое дело.Почему Java поддерживает перегрузку функций для примитивных типов данных?
public class JavaTest
{
public static void Test(Integer integer)
{
System.out.println("in Integer");
}
public static void Test(int integer)
{
System.out.println("in int");
}
public static void main(String[] args)
{
Test(1);
}
}
В этом случае java должен был исключить исключение во время компиляции. но он успешно компилируется и печатает ниже результата
в междунар
если я удаляет Test (INT целое) метод, то Java дает мне результат
в целое
, поэтому мой вопрос в том, почему java разрешает такую перегрузку функции?
нет его не дублировать – Abhijit
да, это своего рода есть. вам нужно сначала понять разницу между классами и типами примитивов. – Vucko
Я думаю, что это похоже, но не дубликат - посмотрите здесь контекст. – Mena