У меня есть этот простой код:
public class Main {
public static void main(String[] args) {
byte a = 10, b = 20, c = a+b;
System.out.println(a);
}
}
Это, конечно, ошибка. Но если я скомпилирую код с помощью онлайн-редактора (такого как JDoodle), я получу такой ввод, который я ожидаю:
error: incompatible types: possible lossy conversion from int to byte
byte a = 10, b = 20, c = a+b;
^
1 error
В противном случае, если я скомпилирую код с Eclipse (2018-12) + JDK:
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
Я получаю эту другую ошибку:
Unresolved compilation problem:
Type mismatch: cannot convert from int to byte
Как это возможно? Я думаю, что первая ошибка - правильное (ожидаемое) поведение. Должен ли я думать, что есть проблема в моем JDK?