我有一个可能需要1到4个参数的类。他们总是弦乐。我想根据传递给函数的参数数量创建此类的对象。有没有办法去创建构造函数并将对象数组直接传递给newInstance?
NewInstanceWithReflection clazz = (NewInstanceWithReflection)Class.forName("NewInstanceWithReflection").newInstance();
Constructor constructor = NewInstanceWithReflection.class.getDeclaredConstructor( new Class[] {String.class});
NewInstanceWithReflection object1 = (NewInstanceWithReflection)clazz.newInstance(new Object[]{"StackOverFlow"});
粘贴到sbt解释器的代码似乎不起作用。任何帮助表示赞赏。
答案 0 :(得分:0)
你错了(更不用说,它是java语法,而不是scala)。 像这样的东西应该在scala中起作用:
classOf[NewInstanceWithReflection]
.getDeclaredConstructor(classOf[String])
.newInstance("StackOverFlow")
这就是你在java中所需要的:
NewInstanceWithReflection
.class
.getDeclaredConstructor(String.class)
.newInstance("StackOverFlow")