我正在使用 SpringToolSuite
as-ide及其开发应用 Spring MVC
.
在应用程序的模型部分,我定义了一个名为component的bean
import lombok.Data;
@Data
public class Ingredient {
public Ingredient(String string, String string2, Type wrap) {
// TODO Auto-generated constructor stub
}
private String id;
private String name;
private Type type;
public enum Type{
WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
}
}
当我使用 @Data
来自lombok的注解我可以假设一个采用这3个属性的构造函数是自动创建的,还有getter和setter。
但就像我呼叫的控制器一样 new Ingredient("FLTO", "Flour Tortilla", Type.WRAP)
我在指令下面得到了一条红线,其中有一条消息告诉我没有带参数的构造函数。
我不明白,因为这个类的成分是用Lombok山的注解标记的 @Data
这些错误导致springboot项目的运行崩溃
Caused by: java.lang.Error: Unresolved compilation problems:
The method asList(T...) in the type Arrays is not applicable for the arguments (Ingredient, Ingredient, Ingredient, Ingredient, Ingredient, Ingredient, Ingredient, Ingredient, Ingredient, Ingredient)
The constructor Ingredient(String, String, Ingredient.Type) is undefined
.........................
3条答案
按热度按时间kqhtkvqz1#
@Data
文档因为您的字段没有标记为
final
他们不在保险范围内@RequiredArgsConstructor
因此将必填字段声明为
final
或使用
@AllArgsConstructor
编辑被禁烟到:
然后我可以用
6rqinv9w2#
@Data
注解为注解创建构造函数@RequiredArgsConstructor
@RequiredArgsConstructor
为未初始化的最终字段或带注解的字段创建构造函数@NonNull
. 你的领域不是final
也不是@NonNull
因此建造师Ingredient(String, String, Ingredient.Type)
未生成如果你想生成所有参数,我会添加
@AllArgsConstructor
否则必须满足上述条件dsekswqp3#
我在ide中尝试了你的代码,没有错误。
确保在ide中启用了注解处理。如果你正在使用gradle,确保你有
annotationProcessor
为了lombok
在正确的地方。构造函数不是使用数据自动创建的。使用
@RequiredArgsConstructor
将根据所需字段生成构造函数(final
字段)。