版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
创建一个通用于pojo的工具类Service,Service中用到了泛型T,并且需要调用T(pojo)中的方法,解决方案示例如下:
Service.java
import java.lang.reflect.Method;
public class Service<T> {
public void fun(T t) {
try {
//获取method对象,其中包含方法名称和参数列表
Method setName = t.getClass().getMethod("setName", String.class);
//执行method,t为实例对象,后面是方法参数列表;setName没有返回值
setName.invoke(t, "tom");
//getName无参有返回值
Method getName = t.getClass().getMethod("getName");
//object为getName的返回值
Object result = getName.invoke(t);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
User.java
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
测试
public static void main(String[] args) throws NoSuchMethodException, SecurityException {
User user = new User();
Service<User> service = new Service<User>();
service.fun(user);
System.out.println(user.getName());
}
输出
result 为 tom
user.getName() 为 tom