java - 传递类型 Class 的实例而不是 Class 表示的类

标签 java reflection

假设有一个 X 类。 然后,下一行返回一个代表 X 的 Class 实例

Class c = X.class;

假设有一个方法 foo()

public void foo(X x){.....}

这样做合法吗

foo(c);

最佳答案

不,X 是一种类型。 Class 是一种不同的类型。 foo 方法需要一个由 Class 实例表示类型的对象,而不是 Class 实例本身。您必须创建由 Class 表示的类型的实例:

Class<X> c = X.class;
X x = c.newInstance();
foo(x);

关于java - 传递类型 Class 的实例而不是 Class 表示的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31020063/

相关文章:

java - Kafka - SimpleConsumer 如何与消费者组关联?

java - GetStringCritical() 可以抛出异常吗?

java - 我可以从内部类访问 "secondary this"吗?

java - 为什么我的 JPanel 上没有绘制矩形?

java - 如何阻止 Java 通过 java.net.Socket 将 32 位 int 截断为单字节?或者也许使用其他东西?

java - Java 反射中找不到类异常

java - 带有内部类的 newInstance()

c# - 实现接口(interface)和匹配属性的 MEF 加载类型

java - PropertyUtils 性能

java - 给定一个 ParameterizedType,我如何创建这种类型的实例?