私は自分のコードで戦略パターンを使用しました。ここに短い断片があります:
public interface FindingStrategy<T> {
Callable<T> setAction();
}
class FindSomething implements BindingActionStrategy {
...
@Override
public Callable<SomeObject> setAction() {
return new Callable<SomeObject>() {
@Override
public SomeObject call() throws ... {
return (SomeObject)binding.findSomething(somethingsId);
}
};
}
...
}
他のどこかで私は:
Callable<SomeObject> ts = (Callable<SomeObject>) strategy.setAction();
そしてコンパイラシグナル:
unchecked conversion warning
required: Callable<SomeObject>
found: Callable
奇妙なことに、これを行うと、警告は表示されません。
Callable<SomeObject> ts = new Callable<SomeObject>() {
@Override
public SomeObject call() throws ... {
return (SomeObject)binding.findSomething(somethingsId);
}
};
これを修正するにはどうすればよいですか? 多くの変更を試みましたが、それでも警告が表示されます。助けてください!