0

私は春のアーキテクチャの新人で、一般的な T (あなたが望むもの) をItemStreamReader.

このようなもの:

public class Reader implements ItemStreamReader<T extends SomeClass>{
    public T read() {
    .......
    }
    public void open() {
    .......
    }
    public void update() {
    .......
    }
    public void close() {
    .......
    }
}

そこで、 を拡張するさまざまなオブジェクトをリーダーに渡しますSomeClass

4

2 に答える 2

1

これはうまくいくはずです:

public class Reader<T extends SomeClass> implements ItemStreamReader<T>{
    public T read() {
    .......
    }
    public void open() {
    .......
    }
    public void update() {
    .......
    }
    public void close() {
    .......
    }
}

次のように使用します。

Reader<SomeClass> reader = new Reader<>();
Reader<ExtendedFromSomeClass> reader2 = new Reader<>();
于 2015-11-11T09:51:31.600 に答える
0

最初に Java ジェネリックについて読むことをお勧めします。

http://www.angelikalanger.com/GenericsFAQ/FAQSections/ParameterizedTypes.html#パラメータ化 (またはジェネリック) 型とは?

しかし、クラスを定義すると

public class Reader implements ItemStreamReader<SomeClass>{
    public SomeClass read() {
    .......
    }
    public void open() {
    .......
    }
    public void update() {
    .......
    }
    public void close() {
    .......
    }
}

メソッドは、SomeClass のサブクラスである任意のオブジェクトを返すことができます。

例えば

Reader a = new Reader();
Subclass b = (Subclass)a.read();
于 2015-11-10T13:54:54.383 に答える