检查以下代码片段:
片段 #1
int a=20;
int b=30;
byte c= (a>b)? 20:30;
Error:
incompatible types: possible lossy conversion from int to byte
byte c= (a>b)? 20:30;
片段 #2
int a=20;
int b=30;
byte h1=70;
byte c= (a>b)? 20:h1;
片段 #3
int a=20;
int b=30;
byte h1=70;
byte h2=89;
byte c= (a>b)? h1:h2;
片段 #4
byte c= (true)? 20:30;
除了 Snippet #1 之外,所有这些都可以正常编译。这种行为如何合理化?如果代码段 #1 产生“可能的有损转换”错误,则代码段 #2 和 4 也应该如此,因为它们仍然包含 type 的文字int。他们为什么编译成功?
慕尼黑的夜晚无繁华
MM们
相关分类