相关疑难解决方法(0)

获取当前正在执行的方法的名称

有没有办法在Java中获取当前正在执行的方法的名称?

java reflection methods

451
推荐指数
14
解决办法
36万
查看次数

如何将特定方法名称作为字符串而不是硬编码方法名称

我必须通过Java反射调用一个特定的方法.而不是传递硬编码的方法名称,是否可以将方法名称作为字符串传递?

例如

 public String getAttribute(Object object1, Object2, String className, String methodName){
     Class<?> clazz = Class.forName(className);
     Method method = clazz.getMethod(methodName);
     return ObjectUtils.firstNonNull(null == object1 ? null: method.invoke(object1),null == object2 ? null: method.invoke(object2); }
Run Code Online (Sandbox Code Playgroud)

我们说我上课了

 @Getter
 @Setter 
 Class Student{
   String studentName;
   String address;
   int rollNumber;
 }
Run Code Online (Sandbox Code Playgroud)

可以说,我们有来电代码

Student student1 = new Student();// Student record from School 1
Student student2 = new Student(); // Student record from School 2
student2.setAddress("ABC");
System.out.println(getAttribute(student1, student2, Student.class.name(), "getAddress"));
Run Code Online (Sandbox Code Playgroud)

而不是将硬编码的方法名称作为参数传递给getAttribute()方法,有没有办法可以使用非硬编码的方法名称?

例如,getAttribute(student, Student.class.name(), Student.class.getStudentName.getName())这样我们可以在需要时轻松地对学生类的方法和变量进行更改,而无需担心硬编码的方法名称常量.

java reflection

3
推荐指数
1
解决办法
113
查看次数

标签 统计

java ×2

reflection ×2

methods ×1