Java 10ではanonymous class
、次のvar
ような操作を実行できます。
var a1 = new Object(){};
var a2 = new Object(){};
ただし、この割り当てはエラーをスローします。
a1 = a2;
jshell> a1 = a2; | Error: | incompatible types: $1 cannot be converted to $1 | a1 = a2; | ^^
エラーログに基づいて、なぜJavaの10のアサイン2を推測することができないvar
としてSをanonymous class
お互いに、それはのような他のタイプのために同じことを行うことができますLong
、String
など?
それぞれnew Object(){}
が新しいタイプ(匿名クラス)を作成します。割り当てることはできませんので、これらのタイプは、何のサブタイプスーパータイプ関係を持っていないa1
しa2
、またはその逆。
ただし、2つのlong
変数がある場合、両方とも実際には同じタイプlong
であるため、相互に割り当てることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加