jjzjj

getConstructor

全部标签

JAVA getConstructor 抛出 NoSuchMethodException

我是JAVA新手我正在努力学习reflection.我想获得特定的构造函数(选择示例形式here)来self的类(class):publicclassExample1{publicExample1(){}publicExample1(inti){}publicExample1(Strings){System.out.println("usingparam="+s);}publicstaticvoidmain(String[]args)throwsException{Class[]paramTypes=String.class.getClasses();Constructorctor=E

具有参数化类型的 Java getConstructor(types)

如果我有一个带有参数化泛型的构造函数的类:publicclassFoo{publicFoo(Mapdata){...}}...如果我想调用,我该如何引用参数化Map的类:Constructorconstructor=cls.getConstructor(/*theMapclass!*/)(其中cls是Foo类。)我想做这样的事情:Constructorconstructor=cls.getConstructor(Map.class);...但这行不通。我相信对此有一个简单的答案! 最佳答案 在运行时,这:Map其实就是一个Map,没

java - 如何 'getConstructor',其中构造函数签名包含java数组

是否可以使用getConstructor获取下面类X的构造函数?publicclassA{}publicclassY{}publicclassXextendsY{publicX(Aa,Y[]yy){}publicvoidsomeMethod()throwsSecurityException,NoSuchMethodException{Classclazz=X.class;Constructorc=clazz.getConstructor(newClass[]{A.class,/*whatdoIputinhereforthearrayofYs?*/});}}谢谢

java - 类中 getConstructors() 中的通用类型

在通用类中Class方法getConstructors()具有未知泛型类型参数的返回类型而不是T.原因在javadoc中有解释。NotethatwhilethismethodreturnsanarrayofConstructorobjects(thatisanarrayofconstructorsfromthisclass),thereturntypeofthismethodisConstructor[]andnotConstructor[]asmightbeexpected.Thislessinformativereturntypeisnecessarysinceafterbeing

java - Java 中 Class.getConstructors() 返回的数组顺序如何

众所周知,Java反射提供了Class.getConstructors方法,但是Constructor[]的顺序如何?数组?比如我创建了Person类,有3个构造方法:publicPerson(){}publicPerson(intage){this.age=age;}publicPerson(intage,Stringname){this.age=age;this.name=name;}通过调试,我发现构造函数数组的顺序是这样的:0=publicxxx.Person(int)1=publicxxx.Person(int,java.lang.String)2=publicxxx.Per

java - 没有参数的getConstructor

对于没有参数的构造函数,我似乎无法使用getConstructor。我不断收到以下异常:java.lang.NoSuchMethodException:classname.()代码如下:interfaceInfoInterface{StringgetClassName();StringgetMethodName();StringgetArgument();}classasaimplementsInfoInterface{@OverridepublicStringgetClassName(){return("jeden");}@OverridepublicStringgetMethodN

java: 未经检查的对 getConstructor(java.lang.Class<?>...) 的调用

我正在使用反射来构造一个将文件作为参数的类(ConfigBuilder):ClassmyClassType=Class.forName(className);Class[]types=newClass[]{File.class};Constructorcons=myClassType.getConstructor(types);Object[]constructorArgs=newObject[]{myFile};cb=(ConfigBuilder)cons.newInstance(constructorArgs);但是我收到这个警告:warning:[unchecked]unchec

java - Class API 中的 getDeclaredConstructors 和 getConstructors 有什么区别?

我注意到在Java反射API中有两种不同的方法来调用构造函数:getDeclaredConstructors/getConstructors方法。尽管Java文档略有不同(getDeclaredConstructors似乎暗示它返回所有构造函数,而不是公共(public)构造函数),但不清楚为什么API明确支持这两种不同的方法。更重要的是,我想知道:如果我们动态调用类,什么时候一种方法比另一种更可取?比如访问私有(private)构造函数的目的是什么? 最佳答案 getDeclaredConstructors(当你想要所有构造函数时