使用 Lombok 初始化对象
Initialize objects with Lombok
我有以下对象:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyComplexObject implements Serializable {
private static final long serialVersionUID = 1L;
private OuputObject ouput;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OuputObject implements Serializable {
private static final long serialVersionUID = 1L;
private InputObject input;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InputObject implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> example;
}
实例化对象时,对象未初始化"OuputObject",始终为NULL。为什么OuputObject对象和InputObject对象没有被实例化或初始化?
当我执行 a: getInputObject () 时,我得到一个 NullPointerException
(这是一个例子,是假数据)
Lombok 不初始化属性。
注解 @Data
只为 class 属性生成 getters
和 setters
,并覆盖 toString
、hashCode
和 equals
方法。
@Data
public class MyClass {
private String myString;
}
生成以下代码:
public class MyClass {
private String myString;
public String getMyString() {
return myString;
}
public void setMyString(String myString) {
this.myString = myString;
}
// equals, hashcode, toString
}
@Data
创建 getter,setter,@AllArgsConstructor
为所有字段创建构造函数,@NoArgsConstructor
创建默认构造函数。要初始化您的对象,您需要使用构造函数,例如
MyComplexObject mco = new MyComplexObject(new InputObject());
我有以下对象:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyComplexObject implements Serializable {
private static final long serialVersionUID = 1L;
private OuputObject ouput;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OuputObject implements Serializable {
private static final long serialVersionUID = 1L;
private InputObject input;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InputObject implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> example;
}
实例化对象时,对象未初始化"OuputObject",始终为NULL。为什么OuputObject对象和InputObject对象没有被实例化或初始化?
当我执行 a: getInputObject () 时,我得到一个 NullPointerException
(这是一个例子,是假数据)
Lombok 不初始化属性。
注解 @Data
只为 class 属性生成 getters
和 setters
,并覆盖 toString
、hashCode
和 equals
方法。
@Data
public class MyClass {
private String myString;
}
生成以下代码:
public class MyClass {
private String myString;
public String getMyString() {
return myString;
}
public void setMyString(String myString) {
this.myString = myString;
}
// equals, hashcode, toString
}
@Data
创建 getter,setter,@AllArgsConstructor
为所有字段创建构造函数,@NoArgsConstructor
创建默认构造函数。要初始化您的对象,您需要使用构造函数,例如
MyComplexObject mco = new MyComplexObject(new InputObject());