次のクラスがあるとします。
public class Either<A, B> {
public Object get();
}
Either
は、タイプ A または B のいずれかのオブジェクトを 1 つ格納するタイプです get()
。その 1 つのオブジェクトを取得します。
get()
問題は、返される型が だけでなく、A と B の共通のスーパータイプになるように、ジェネリックを使用して のメソッド シグネチャを変更できるかどうかですObject
。たとえば、 anEither<Integer, Long>
はget()
returnを持つことができNumber
、 anEither<Deque<T>, Set<T>>
はget()
returnIterable<T>
またはCollection<T>
を持つことができます。等々。(明らかに、 an にEither<Foo,Foo>
はget()
returnが必要Foo
です)。
これが可能な場合、私が持っていた場合Either<List<A>, List<B>>
、最も具体的な型は何get()
を返すことができますか? raw List
、 wildcard List<?>
、またはまったく別のものですか?