次のクラスがあるとします。
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<?>、またはまったく別のものですか?