public static List<A> getTree(List<B> list) {
List<A> nodes = new ArrayList<>();
for (B b : list) {
A a = new A();
a.setName(b.getName());
nodes.add(a);
}
// 其他处理...
return nodes;
}
入参类型为数组的B
返回结果为数组的A
如何改成泛型方法的写法啊,把类A,类B如何替换?
参考下面 Masource
大佬的回复
public static <R, T> List<T> coverts(List<R> req) {
try {
for (R r : req) {
// 反射获取R类的所有属性和值
for (Field f : r.getClass().getDeclaredFields()) {
String name = f.getName();
name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1).toUpperCase());
Method m = r.getClass().getMethod("get"+name);
System.out.println(name+"----"+m.invoke(r).toString());// name----张三 age----18
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
方法入参一定有一个clazz来实例化对象的,因为类型擦除了