今天使用反射实例化遇到一个异常:java.lang.InstantiationException
先看要通过反射实例化的类:就一个很普通的类
package com.dd.reflect;
public class flower {
private String color;
private int num;
public flower(String color, int num) {
super();
this.color = color;
this.num = num;
}
@Override
public String toString() {
return "flower [color=" + color + ", num=" + num + "]";
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public void f1(String s) {
System.out.println(s);
}
}
解决方法:通过查官方文档:
翻译:
当应用程序试图在class类中使用newInstance方法创建类的实例,但无法实例化指定的类对象时抛出。实例化失败的原因有很多,包括但不限于:
类对象表示抽象类、接口、数组类、基本类型或void
该类没有空构造函数
然后我的是没有空的构造函数,加上无参构造函数,就解决了这个问题:
好了嘻嘻。
然后其他的原因,因为我没有遇到,这里提供一些思路,大家要加油解决啊!