如何根据传入的字符串作为方法名调用 Java 方法?


java.lang.reflect.Method 类提供有关类或接口中单个方法的信息并可访问它。反射方法可以是类方法或实例方法(包括抽象方法)。Method 允许在将实际参数与底层方法的正式参数匹配时进行拓宽转换,但如果发生缩小转换,则会抛出 IllegalArgumentException。

你可以使用包 java.lang.reflect 中名为 method 的类调用该方法。这个类的构造函数接受一个字符串形式的方法名称。你可以使用 invoke() 方法调用该方法。

示例

import java.lang.reflect.Method;

public class DemoTest {
   private void sampleMethod(){
      System.out.println("hello");
   }
}
public class SampleTest {
   public static void main(String args[]) throws Exception{
      Class c = Class.forName("DemoTest");
      Object obj = c.newInstance();
      
      Method method = c.getDeclaredMethod("sampleMethod", null);
      method.setAccessible(true);
      method.invoke(obj, null);
   }
}

更新日期: 2019 年 7 月 30 日

3K+ 浏览量

启动你的 职业

完成该课程获得认证

开始
广告
© . All rights reserved.