もう一つお題
これもワーニングにならないようにしたい。
private <T> ComponentDefNodeModifier<T> getModifier(ComponentDefNode<T> node) { return node.getInterface(ComponentDefNodeModifier.class); } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … public interface IQueryInterface<I> { <II extends I> boolean hasInterface(Class<I> interfaceClass); <II extends I> II getInterface(Class<I> interfaceClass); … public class ComponentDefNode<T> implements ComponentDef<T>, IQueryInterface<T> { public <TT extends T> TT getInterface(Class<TT> interfaceClass) { assertParameterIsInterface(interfaceClass); assertNotFound(interfaceClass); return registry.get(interfaceClass); } …
上記下線部で以下のワーニングが出る。
- 型の安全性: 型 ComponentDefNodeModifier の式は、未検査の型変換を使用して ComponentDefNodeModifier
に準拠する必要があります。
ComponentDefNodeModifier<T>.class なんていう書き方ができれば良いんですけどねー。これの代替措置ってあるんだろうか。もちろん @SuppressWarnings("unchecked")なしで。
※追記 お題2がめちゃくちゃだったので書き直しました。お題1は解決済みです。