eclipse控制台输出这个 怎么输出元素内容

输入:
public static void main(String[] args) {
Set set=new HashSet();

    set.add(new Light(1,8,7,7));
    set.add(new Light(2,9,9,9));
    set.add(new Light(3,8,8,8));
    set.add(new Light(4,3,7,6));
    set.add(new Light(5,7,5,9));

    Iterator it=set.iterator()  ;
    while (it.hasNext()) {
        System.out.println(it.next());
    }
}

控制台输出:
MyClass.Light@70dea4e
MyClass.Light@15db9742
MyClass.Light@6d06d69c
MyClass.Light@4e25154f

这输出的是是集合元素的地址

System.out.println(obj); 输出打印实际是输出obj.toString()方法, 任何对象都是默认继承Object对象的toString方法,toString的默认实现

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

想要输出自定义对象内容可以重写toString方法, 或者将对象转成json字符串(可以用fastjson, JSON.toJSONString(obj))输出

重写Light这个对象的toString()方法即可,无需转json