package com.yx;
import com.alibaba.fastjson.JSON;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
public class App {
public static void main(String[] args) {
User user = new User();
user.setName("小红");
user.setAge(10);
user.setHobby("dance");
test(user);
}
public static void test(Person person) {
// 使用传入对象的toString方法,如果传入的是子类对象,则调用子类的toString方法,
// 子类的@ToString若是没有添加callSuper=true,则不会打印出基类的属性
System.out.println(person);
System.out.println("---------------------------------------");
// 打印出传入对象的所有属性,即使@ToString没有添加callSuper=true
System.out.println(JSON.toJSONString(person));
}
}
@Data
@ToString
class Person {
private String name;
private Integer age;
}
@Data
@EqualsAndHashCode(callSuper = true) // equal和hashCode方法里会调用基类的对应方法
@ToString(callSuper = true) // toString方法里会调用基类的对应方法
class User extends Person {
private String hobby;
}
打印结果:
User(super=Person(name=小红, age=10), hobby=dance)
---------------------------------------
{"age":10,"hobby":"dance","name":"小红"}