0
ジェネリックメソッドについて教えて頂きたいです
?の部分でキャストをしないで実装クラスを使用するにはどのように記述すればいいのでしょうか?
?の戻り値で(T)をしないでsubを戻そうとするとエラーになります。
ググってみたのですが、メソッドの戻り値や引数の扱いが載っているサイトがみつからなかったので、こちらで質問させて頂きます。
宜しくお願いします。
public class Sample {
public static class Super<T> {
}
public static class Sub extends Super<Sub> {
}
public static class SuperChange {
public <T> T action(Super<T> sp) {
return null;
}
}
public static class SubChange extends SuperChange {
@Override
public <T> T action(Super<T> sp) {
Sub sub = (Sub)sp; //?
return (T)sub;//?
}
}
public static void main(String[] ss) {
SubChange sc = new SubChange();
sc.action(new Sub());
}
}