List<User> list = (mybatis、Oracle返回值);
for (User user : list) {
System.out.println(user.getName());
System.out.println(user.getAge());
}
如上例子,可以得到list,可是这样写就是一个实体类就要写一遍(user.getName())这样的,如果这个实体类里面是很多很多,这样就要写很多很多。
想要一个通用的方法,就是不管List里面的object是什么实体类,这个实体类里面包含多少,都能通过遍历获得list,请问有方法吗?有实例可以参考的最好了,谢谢!
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class PrintObjectList {
public static void printList(List list) {
if (list == null || list.size() == 0)
return;
for (Object o : list) {
if (o != null){
Field[] fields = o.getClass().getDeclaredFields();
try {
for (Field f : fields) {
f.setAccessible(true);
String name = f.getName();
Object value = f.get(o);
System.out.println(name + "--" + value.toString());
}
} catch (IllegalAccessException e) {
}
}
}
}
public static void main(String args[]){
List list = new ArrayList();
list.add(new Example(0, "aa"));
list.add(new Example(1, "bb"));
list.add(new Example(2, "cc"));
list.add(new Example(3, "dd"));
printList(list);
}
}
class Example{
private int i;
private String s;
public Example(int i, String s){
this.i = i;
this.s = s;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
}
可以试着自己写一个反射的函数
额,除非你要执行的都是object的方法,这个USer才可以写成Object
如果你只是遍历打印,那就是在实体类重写toString()方法,然后java8环境中用 list.forEach(System.out::print);
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class PrintObjectList {
public static void printList(List list) {
if (list == null || list.size() == 0)
return;
for (Object o : list) {
if (o != null){
Field[] fields = o.getClass().getDeclaredFields();
try {
for (Field f : fields) {
f.setAccessible(true);
String name = f.getName();
Object value = f.get(o);
System.out.println(name + "--" + value.toString());
}
} catch (IllegalAccessException e) {
}
}
}
}
public static void main(String args[]){
List list = new ArrayList();
list.add(new Example(0, "aa"));
list.add(new Example(1, "bb"));
list.add(new Example(2, "cc"));
list.add(new Example(3, "dd"));
printList(list);
}
}
class Example{
private int i;
private String s;
public Example(int i, String s){
this.i = i;
this.s = s;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
}
那可以直接用阿里的那个转成JSON的jar包。直接转json