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;)
Спасибо.