次のロジックを機能させようとしています。
public class Wrapper {
public static class General {
public void copy(General g) {
// copy fields
}
// General contents.
}
public static class Specific extends General {
// Specific contents.
}
public static class GeneralLogic<T extends General> {
public T load(ResultSet rs) {
General o = new General();
// Do stuff
return new General();
}
}
public static class SpecificLogic<T extends Specific> extends GeneralLogic<T> {
@Override
public T load(ResultSet rs) {
Specific o = new Specific();
o.copy(super.load(rs));
// Do stuff
return new Specific();
}
}
}
両方の return 行でコンパイル エラーが発生します: Type mismatch: cannot convert from Wrapper.General to T
( Wrapper.Specific to T
2 番目の return の場合)。