如果list中的元素是基本类型或者String类型,那么sout(list)是可以直接打印出元素的,如果是对象类型,就会报错。

2022-08-02,,,,

对于ArrayList, 我们sout(list)时候,调用的是toString()方法,这个方法在jdk的api方法表中没有找到,那么一定是从父类继承过来的了。

看到这里恍然大悟,为何对象类型的toString常常看到一大段字符串,原来是这样构成的。
对于上述问题的追踪,如何详细打印出list中对象各个属性值的信息。

1在实体类中重写toString方法,输出key-value形式的数据

public class Test5{
    private String name;
    private String sex;
    private int No;
    
    public void Show(){
        System.out.println("这是我的展示方法!!!!");
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getNo() {
        return No;
    }
    public void setNo(int no) {
        this.No = no;
    }
    @Override
    public String toString() {
        return "Test5 [name=" + name + ", sex=" + sex + ", No=" + No + "]";
    }
    
}

2 用google开源的lombok,加注释@Data,它自动重写toString方法。
附注:数组array打印对象的方法:Arrays.toString(array);

String[] product= {"Bison","Bison","Bison","Bison","Bison","Bison"};
		String[] duty= {"Material","NTF","Process","UOP","NO check in","Under FA"};
		List<User> results=new ArrayList<>();
		
		for(int i=0;i<duty.length;i++) {
			User user=new User();
			user.setName(product[i]);
			user.setPassword(duty[i]);
			results.add(user);
//			System.out.println(product[i]+" "+duty[i]);
//			System.out.println(user.getName()+" "+user.getPassword() );
		}
		System.out.println(results.get(0).getName());
		System.out.println(results.get(1).getPassword());
		System.out.println(Arrays.toString(duty));

本文地址:https://blog.csdn.net/weixin_42400729/article/details/107376237

《如果list中的元素是基本类型或者String类型,那么sout(list)是可以直接打印出元素的,如果是对象类型,就会报错。.doc》

下载本文的Word格式文档,以方便收藏与打印。