Я ищу способ вернуть новый экземпляр типа, который расширяет класс abstract
в Java, в идеале без отражения от статического метода.
Так что я хочу иметь возможность звонить:
SomeClass anInstanceOfSomeClass = Builder.build<SomeClass>()
Я надеялся, что смогу сделать что-то вроде:
public class Builder {
public static <T extends SomeBaseClass> T build() {
return new T(); // cannot instantiate type T
}
}
Я видел несколько примеров, использующих Supplier
, но они, как правило, основаны либо на нестатическом, с использованием обобщенного класса, а не на методе, и / или требуют передачи ctor
в качестве параметра, который кажется немного сложнее синтаксически.
Кажется, что это должно быть просто, но, исходя из C #, я не слишком знаком с лучшим способом достижения этого в Java. Любые мысли приветствуются.