Java:获取泛型供应商返回对象的类类型
假设给出了以下定义:
final Supplier<MyClass> supplier = MyClass::new;
有没有一种方法可以在不实际调用供应商上的.get()
的情况下获取MyClass.class
为什么??我必须知道指定的类才能做出一些逻辑决策。基于此,我可能需要在MyClass
中找到另一个构造函数,它有一个参数,并且我对目标类的唯一了解是这种类型的提供者。当然,我可以调用.get()
并从那里开始,如下所示:
final MyClass obj = supplier.get().getClass().getConstructor(MyParameter.class).newInstance(..);
但在执行中间步骤之前使用此选项可能会导致不必要的对象创建
# 1 楼答案
你可以像下面这样做。有必要添加番石榴作为依赖项