私は次のコードを持っています、
class Foo<K> {
public <T> T createK() {
return null;
}
public void foo() throws ClassNotFoundException {
K k = (1==1)?null:createK();
}
}
ただし、コンパイルされませんでした。条件演算子のある行で、次のコンパイル エラー (Oracle Java 7) が発生しました。
型の不一致: Object から K に変換できません
foo()
メソッドを次のように書き換えると、
public void foo() throws ClassNotFoundException {
K k = null;
if (1==1)
k = null;
else
k = createK();
}
その後、正常にコンパイルされます。これはどのように発生し、どうすれば解決できますか?