我正在尝试编写一个程序,当类名和方法名以字符串参数的形式传递给调用者时,执行特定的方法。请考虑下面的代码。我有一个名为CarBean的类:
public class CarBean {
private String brand;
private String color;
/**
* @return the brand
*/
public String getBrand() {
return brand;
}
/**
* @param the brand to set
*/
public void setBrand(String brand) {
this.brand= brand;
}
/**
* @return the color
*/
public String getColor() {
return color;
}
/**
* @param the color to set
*/
public void setColor(String color) {
this.color= color;
}
}
现在我想通过以下方法运行它:
runTheMehod("CarBean","getColor");
runTheMethod的实现应该像这样:
public runTheMethod(String className, String methodName){
try {
Object carObj = Class.forName(className).newInstance();
//What to do now???
} catch (InstantiationException | IllegalAccessException
| ClassNotFoundException e) {
e.printStackTrace();
}
}
我可以使用类名获得一个对象。现在我需要将其转换为CarBean对象,然后才能运行它的方法。所以想知道如何在运行时进行强制类型转换,因为每次调用的类名都不同。另外,我能否在尝试调用该方法之前检查类是否具有特定方法?
如有任何建议,请告知。如果有更好的方法解决此问题,我也愿意听取。
runTheMethod(Object instance, String methodName)
也可以工作,并且由您来创建该类型的对象。 - zapl