IDEA提示,git commit 提示 review 警告

Generating equals/hashCode implementation but without a call to

@Data
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "返回test列表信息")
public class TestInfo extends CommenResponse {

    @ApiModelProperty(value = "test列表")
    private List<TestInfoListEntry> entries;
}

依次点击 idea控制栏 -> git -> commit 提示 review

Generating equals/hashCode implementation but without a call to
superclass, even though this class does not extend java.lang.Object.
If this is intentional, add ‘(callSuper=false)to your type.


生成equals/hashCode实现,但不调用超类,即使该类不扩展java.lang.Object。如果这是有意的,请在您的类型中添加“(callSuper=false)”。

分析

TestInfo继承了 CommenResponse,如果只加 @Builder 注解,在使用.builder()方法时,只能对 TestInfo 类的属性进行 build,而不能附加 父类的属性,所以要加 @SuperBuilder,关于@SuperBuilder的参数,见关于 @Builder 和 @SuperBuilder

解决办法

在类上添加 @EqualsAndHashCode(callSuper = true)注解

添加之后就可以在生成equals/hashCode方法时包含其父类的属性

Can be replaced with method reference less 可以用代码更少的方法引用代替

// 该写法会提示该警告
list.forEach(s -> System.out.println(s));
        
// 使用方法引用消除警告,一般 alt+enter 可以自动转换
list.forEach(System.out::println);

Warning: Static member accessed via instance reference

Warning:Static member accessed via instance reference 
Shows references to static methods and fields via class instance rather than a class itself.

通过引用实例来访问静态成员
通过类的实例来显示静态方法和变量的引用,而不是通过类本身
分析:
可能是考虑到实例会被回收

解决方案:
直接通过类本身来访问静态成员
public class Book() {
    public static final int PAGES = 100;
}

//不推荐
Book book = new Book();
int pages = book.PAGES;
//推荐
int pages = Book.PAGES;

Type may be primitive

Integer param = Integer.valueOf(info.getParam());
但是实际上用不到 Integer 类型,在 git commit 时提示 review :不需要使用装箱类型,使用原始类型就 ok
见下一个错误

类型应该是原始的
IDEA提示,git commit 提示 review 警告_第1张图片

Redundant boxing inside ‘Integer.valueOf(locElement[0])‘

Integer param = Integer.valueOf(info.getParam());

这个信息是在说valueof方法装箱冗余了,原因是valueof内部调用了parseInt()方法,所以将Integer.valueof方法换成parseInt方法,这个装箱冗余信息就没有了。

你可能感兴趣的:(java,idea,intellij-idea,git,java)