Давайте предположим, что дано следующее определение:
final Supplier<MyClass> supplier = MyClass::new;
Есть ли способ получить MyClass.class
без фактического вызова .get()
для поставщика?
Почему?Я должен знать указанный класс, чтобы принять некоторые логические решения.Исходя из этого, мне может понадобиться найти другой конструктор в MyClass
, который имеет параметр, и единственное, что я знаю о целевом классе, это поставщик этого типа.Конечно, я мог бы просто вызвать .get()
и перейти оттуда так:
final MyClass obj = supplier.get().getClass().getConstructor(MyParameter.class).newInstance(..);
Но использование этого перед выполнением моих промежуточных шагов может привести к ненужному созданию объекта