问题描述
现在要做什么???
Method method = carObj.getClass().getMethod(methodName);
method.invoke(carObj);
也可以看看:
解决方法
我试图制作一个程序,当类名和方法名作为String参数传递给调用者时,该程序执行特定的方法。考虑下面的代码。我有一个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对象,然后可以运行其方法。因此,想知道如何在运行时将其强制转换为类名对于每个调用都会有所不同。另外,在尝试调用该类之前,可以检查该类是否具有特定方法吗?
关于这个问题的任何建议将不胜感激。另外,我想知道是否有更好的方法可以做到这一点。