Java 反射以自动启动实现

Java 反射以自动启动实现,java,class,reflection,field,implementation,Java,Class,Reflection,Field,Implementation,我正在尝试使用反射,以使添加impl类更容易 这就是我试图使用它的方式: 这是在我的主类(Person.java)中 那么这就是它的始作俑者: myHouse = new MyHouse(); myHouse.setPerson(this); 所以我要做的是使用反射和抽象类来自动执行这两个代码 问题是,我可以执行: myHouse.setPerson(这个) 通过使用setPerson作为抽象方法,但是如何执行 myHouse=新myHouse(); ? 显然,我试图初始化的类将被称为MyHo

我正在尝试使用反射,以使添加impl类更容易

这就是我试图使用它的方式:

这是在我的主类(Person.java)中

那么这就是它的始作俑者:

myHouse = new MyHouse();
myHouse.setPerson(this);
所以我要做的是使用反射和抽象类来自动执行这两个代码

问题是,我可以执行: myHouse.setPerson(这个)

通过使用setPerson作为抽象方法,但是如何执行 myHouse=新myHouse(); ? 显然,我试图初始化的类将被称为MyHouse.java,因此可能与class.getSimpleName()有关,并使用小写首字母对其进行格式化以查找字段

例如,格式化类的简单名称后,它将等于“myHouse”,这是Person类中该字段的名称,但仍然只是一个字符串,那么我该如何做呢


我知道文献对下面的任何问题都很困惑。

我对你的描述有点困惑,但也许你要找的是
Class.forName(nameofyclass).newInstance()
?是的,我需要为该方法返回的内容设置一个字段,myHouse=Class.forName(nameofyclass).newInstance();但是我需要手动输入myHouse=,我不想这样做
getClass().getDeclaredField(“myHouse”).set(这是Class.forName(nameOfMyClass).newInstance())
myHouse = new MyHouse();
myHouse.setPerson(this);