например, у меня есть этот класс:
public class Col {
static void test(int a)
{
System.out.println("int");
}
public static void main(String args[])
{
Col.test(12); //1
Col.test((byte)12); //2
Col.test((long)100); //3
}
}
, и теперь мне интересно, как алгоритм работает с этим кодом. Я думаю, что это шаги:
1 строка - все правильные методы вызова с параметром int, идеально.
2 строки - вызов метода с параметром байта ... ой. что? Java попробовать расширить байт до int? Это правда?
Трехстрочный метод вызова с длинным параметром ... снова упс. что? преобразовать long в int java не может из-за потери точности. его попробовать? И в результате - Исключение.
Затем я добавляю это:
public static void test(Object a)
{
System.out.println("Object");
}
и если вызов:
Col.test((long)100);
все правильно, исключений нет.
Эта проблема возникает при запуске ls
. Большинство процессов выдают эту ошибку. Почему это происходит и что я могу сделать, чтобы это работало?