java.lang.NoSuchMethodException:package.ClassName。<init>()使用Class <?>

AyukNayr:

我正在使用此代码实例化一个新类:

Class<?> clazz; Object object;

clazz = Class.forname(package.ClassName);//dynamic classes 

object = clazz.newInstance();

现在的问题是,每当我运行此代码时,它就会给我一个 NoSuchMethodExeception : package.ClassName.

ClassName有一个参数,我不能删除它,因为它是必须的。

我尝试删除该参数,然后错误消失了(出于某种原因,参数必须始终存在)。

为什么这样工作?

Quaffel:

根据文档,该函数Class#newInstance只能初始化提供无参数构造函数的类。

如果要初始化不提供无参数构造函数的类型,因此需要构造函数的调用者提供参数,则可以使用java.lang.reflect.Constructor-API

Constructor<?> constr = clazz.getConstructor(classTypeOfArgument);
Object instance = constr.newInstance(paramInstance); 

注意:在这种情况下,使用原始类型是一个非常糟糕的主意,因为您似乎已经知道要处理的类型。

@Shankar Saran Singh这与运行时动态类型创建完全无关,您提供的代码片段根本无法解决作者的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.NoSuchMethodException: <init> []

启动Servlet筛选器时如何解决java.lang.NoSuchMethodException:package.MyCustomFilter。<init>()

java.lang.NoSuchMethodException: <Class>.<init>(java.lang.String) 复制自定义 Transformer 时

Kotlin java.lang.NoSuchMethodException:<init>()

java.lang.NoSuchMethodException:AffirmativeBased。<init>()

引起:java.lang.NoSuchMethodException: <init> [class android.app.Application] - viewmodel

导致此异常的原因java.lang.RuntimeException:java.lang.NoSuchMethodException:<init> [class android.view.View]

java.lang.NoSuchMethodException:userAuth.User。<init>()

Scala案例类中的init方法的java.lang.NoSuchMethodException

引起原因:java.lang.NoSuchMethodException:<init> [class android.content.Context,接口android.util.AttributeSet]

错误:java.lang.NoSuchMethodException:Spring MVC中的java.lang.Long。<init>()

Java反射:原始int的构造函数原因:java.lang.NoSuchMethodException:int。<init>(int)

自定义弹簧条件导致java.lang.NoSuchMethodException:<init>()异常

尝试使用OncePerRequestFilter时发生java.lang.NoSuchMethodException

启动服务器时发生异常:java.lang.NoSuchMethodException:org.springframework.security.authentication.ProviderManager。<init>()

Kotlin 中的“ClassName::class”与“ClassName::class.java”?

在Java中返回<ClassName> .class而不是简单地返回<ClassName>?

android java.lang.AssertionError:java.lang.NoSuchMethodException-Proguard

java.lang.RuntimeException:java.lang.NoSuchMethodException:Hadoop mapreduce

NoSuchMethodException:java.time.LocalDateTime。<init>()使用超级CSV读取CSV

java.lang.NoSuchMethodException为的onCreate

java.lang.NoSuchMethodException struts servlet

使用基于代码的配置获取java.lang.NoSuchMethodException:org.apache.catalina.deploy.WebXml addServlet

使用 Hilt 和 Work Manager 的 Android 检测测试导致 java.lang.NoSuchMethodException

java.lang.ClassCastException:[Ljava.lang.Object; 不能强制转换为className

春季安全性Java NoSuchMethodException:SecurityConfig。<init>()

Java反射错误Java.lang.NoSuchMethodException,但是方法存在

Java中的“ ClassName.class”与Kotlin中的“ [ClassName :: class]”相同吗?

迁移Jersey项目以在jersey.repackaged.org.objectweb.asm.ClassReader.java.lang.IllegalArgumentException中使用Java 10结果。<init>