通过将类名和方法名作为参数传递来运行Java方法

问题描述

现在要做什么???

您现在可以carObj像这样调用您的方法

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对象,然后可以运行其方法。因此,想知道如何在运行时将其强制转换为类名对于每个调用都会有所不同。另外,在尝试调用该类之前,可以检查该类是否具有特定方法吗?

关于这个问题的任何建议将不胜感激。另外,我想知道是否有更好的方法可以做到这一点。

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”