Я попал в ситуацию, когда я могу использовать отражение для получения объекта-конструктора, а затем использовать этот конструктор для создания экземпляра класса или использовать ссылку на конструктор для его создания. Я хотел знать, что лучше с точки зрения производительности. Я знаю, что доступ к методу с отражением дает меньшую производительность, чем прямой доступ к нему, но если я использую ссылку на конструктор, то он должен создать динамический анонимный тип для получения нужного мне экземпляра. Какая справка по Reflection или Method лучше?
interface ConstructorRef {
public abstract Component getInstance();
}
class Component1 implements Component {
}
class Main {
public static void main(String[] args) {
ConstructorRef reference = Component1::new;
Component component = reference.getInstance();
Class<? extends Component> classObj = Component1.class;
Constructor<? extends Component> constructorObj = classObj.getConstructor();
Component component1 = constructorObj.getInstance();
}
}
На самом деле существует так много Компонентов, и я буду знать только, какой компонент создать во время выполнения. Количество компонентов будет расти по мере появления новых требований. Итак, я ограничен в использовании одного из вышеперечисленных методов, я не могу использовать непосредственное создание объекта с помощью оператора new. Итак, что лучше среди двух альтернатив?