java 如何根据字符串 动态执行方法(无参和有参)

//在Main方法中如何通过字符串a,b分别调用方法testa,testb
public class Test {
public static void main(String[] args) {
String a = "test";
String c = "有参数";
String b = "test(c)";
}
public static void testa() {
System.out.println("无参数");
}
public static void testb(String c) {
System.out.println(c);
}
}
抱歉写错了
String a = "testa";
如何根据字符串a调用testa方法

String c = "有参数";
String b = "testb(c)";
如何根据b调用testb方法c为参数

import java.lang.reflect.Method;

public class Test {
    public static void main(String[] args) {
        String a = "testa";
        String b = "testb";

        call(a);
        call(b, "hello");

    }

    private static void call(String methodName) {
        try {
            Method m = Test.class.getDeclaredMethod(methodName);
            m.invoke(Test.class);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void call(String methodName, String param) {
        try {
            Method m = Test.class.getDeclaredMethod(methodName, String.class);
            m.invoke(Test.class, param);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void testa() {
        System.out.println("无参数");
    }

    public static void testb(String c) {
        System.out.println(c);
    }
}

试试这个可以不。


如果解决了您的问题请采纳!
如果未解决请继续追问

追问

和你差不多吧,如果speak这个方法在其它包中 改怎么调用呢 求解

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-20
public class Test {
public static void main(String[] args) {
test();
test("有参数");
}

public static void test() {
System.out.println("无参数");
}

public static void test(String c) {
System.out.println(c);
}
}
这叫方法的重载,方法名一样,参数列表不一样。是面象对象重要特征追问

谢谢哈 怪我上面写错了 回答的和我问的完全不是一回事

追答

哦,那你可以用java的反射机制来实现

追问

恩 我试试哈

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网