Существует более простой способ вернуть B
, который не требует использования обобщений:
class ImplX implements X {
public B method1() {
return new B();
}
}
Вы можете использовать ковариантные типы возврата.
Смысл создания X
универсального в том, что вам необходимо использовать универсальные везде . X<Foo>
, X<Bar>
, X<List<Map<String, Map<String, Integer>>>>
.... даже если вы не хотите заботиться о том, что это такое, вам все равно придется использовать X<?>
.
Если вам действительно не нужно знать, что B
специально будет возвращен этим методом, оставьте его не универсальным.