class MyClass {
void myMethod(byte b) {
System.out.print("myMethod1");
}
public static void main(String [] args) {
MyClass me = new MyClass();
me.myMethod(12);
}
}
Я понимаю, что аргумент myMethod()
является литералом int
, а параметр b
имеет тип байта, этот код генерирует ошибку времени компиляции. (чего можно избежать, используя явный байт для аргумента: myMethod((byte)12)
)
class MyClass{
byte myMethod() {
return 12;
}
public static void main(String [ ] args) {
MyClass me = new MyClass();
me.myMethod();
}
}
После этого я ожидал, что приведенный выше код также сгенерирует ошибку времени компиляции, учитывая, что 12 является литералом int
, а тип возврата myMethod()
- байтом. Но такой ошибки не возникает. (Нет явного приведения: return (byte)12;
)
Спасибо.