2

こんな感じのインターフェースになりました

public interface Reader<T> {
    T read(Class<T> type,InputStream in);
}

これは、ストリームからT型のオブジェクトを読み取るための一般的なインターフェイスです。次に、扱うすべてのオブジェクトがサブクラスであることを知っています。たとえば、 Sとしましょう。だから私はこれを作成します

public class SReader implements Reader<S>{
    S read(Class<S> type, InputStream in){
        // do the job here
    }
}

ただし、 S1がSのサブクラスであっても、Class<S1>に割り当てることはできません。これをエレガントに実装するにはどうすればよいですか? 境界型パラメータ? 私はそれを理解していません。私が持っている唯一の解決策は、次のような型パラメーターを削除することですClass<S>

public class SReader implements Reader{
    // the other stuff
}
4

1 に答える 1

8

欲しいらしい

public interface Reader<T> {
    T read(Class<? extends T> type,InputStream in);
}
于 2013-04-16T17:02:14.227 に答える