我的目标是在不使用@supresswarnings或创建已定义的构造函数的情况下避免出现“private field is never assigned”问题。
我知道从长远来看,使用注解将导致技术债务。但是,我无法证明java的冗长性(尽管我有时在调试bug时喜欢它),这段代码更容易阅读。
我不想使用的方法: SupressWarnings("unused")
写在班级声明上面。
创建一个已定义的构造函数,这是不必要的,因为mybatis可以修改object属性,而不管是否有setters,例如在使用 @SelectKey
.
创建一个永远不会使用的setter。
这是我要为mybatis标准化的模型的示例代码。
模型/namemodel.java
package com.example.mssqlserver.model;
import com.fasterxml.jackson.annotation.JsonInclude;
@SuppressWarnings("unused") // MyBatis does not need a defined constructor nor a setters.
@JsonInclude(JsonInclude.Include.NON_NULL) // filter: only non_null, alternative: spring.jackson.default-property-inclusion=NON_NULL in application.properties
public class NameModel {
private Integer id;
private String name;
private String newid;
public Integer getId() {
return id;
}
public String getName() {
return name;
}
public String getNewid() {
return newid;
}
public boolean requestIsValid() {
return !this.name.isEmpty();
}
}
1条答案
按热度按时间mrphzbgm1#
javac不会对此抱怨。
所以它很可能是正在使用的ide。对于这种特定情况,它可能有一个配置错误/警告选项。不幸的是,在我的EclipseIDE中找不到这样一个选项——尽管我记得有一个——所以无法指出确切的选项。
一个相关的问题:为什么没有@mock的“field is never assigned”警告