一尘不染

将类名作为参数传递

java

我有3类调用RedAlertYellowAlertBlueAlert

在我的课程中,AlertController我想要一个这样的方法:

public void SetAlert(//TAKE IN NAME OF CLASS HERE//)
{
    CLASSNAME anInstance = new CLASSNAME();
}

因此,例如,我想:

AlertController aController = new AlertController();
SetAlert(RedAlert);

如何将类名作为参数,并基于该类名从类名创建适当的对象?


阅读 527

收藏
2020-12-03

共1个答案

一尘不染

使用反射是可能的。这里是给定的className(作为字符串传递)。此类将在内存中搜索(应该已经加载)。

作为字符串传递时要实例化的类的名称应 完全限定

void createInstanceOfClass(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException{


        Class classTemp = Class.forName(className);

        Object obj =classTemp.newInstance();



    }
}
2020-12-03