Java的10允许做一个anonymous class有var这样的:
var a1 = new Object(){};
var a2 = new Object(){};
Run Code Online (Sandbox Code Playgroud)
但是这个赋值会抛出一个错误:
a1 = a2;
Run Code Online (Sandbox Code Playgroud)
jshell> a1 = a2; | Error: | incompatible types: $1 cannot be converted to $1 | a1 = a2; | ^^
基于错误日志,为什么不能Java的10分配两个推断varS上anonymous class对方,但它可以为其他类型,如做同样的Long,String等等?
Rom*_*kiy 10
每个都new Object(){}创建一个新类型(匿名类).这些类型没有子类型 - 超类型关系,因此无法分配a1,a2反之亦然.
但是当你有两个long变量时,它们实际上都有相同的类型long,所以它们是相互可分配的.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |