Pra*_*anD 11 java methods casting return-type
class MyClass {
void myMethod(byte b) {
System.out.print("myMethod1");
}
public static void main(String [] args) {
MyClass me = new MyClass();
me.myMethod(12);
}
}
Run Code Online (Sandbox Code Playgroud)
我理解myMethod()作为int文字的参数,并且参数b是byte类型,这段代码会产生编译时错误.(这可以通过投给参数显式字节来避免:myMethod((byte)12))
class MyClass{
byte myMethod() {
return 12;
}
public static void main(String [ ] args) {
MyClass me = new MyClass();
me.myMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
在经历了这个之后,我预计上面的代码也会产生编译时错误,因为12是一个int文字,返回类型myMethod()是字节.但是没有发生这样的错误.(无需显式的转换:return (byte)12;)
谢谢.