繁体   English   中英

在使用泛型的类上实现equals时避免警告

[英]Avoid warning when implementing equals on class with generics

我有以下代码:

public abstract class A<T extends B<? extends A<T>>>{

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        A other = (A) obj; // warning here: "A is a raw type"
        // [...]
    }
}

如何在指定的行中避免“A是原始类型”和“类型安全:未选中的强制转换”? 是否存在某种类型的黑客攻击或者我的课程出错?

谢谢

如果比较A的参数化类型无关紧要,请声明并将其转换为A<?>

A<?> other = (A<?>) obj;

这将删除警告。

在它之前@SuppressWarnings("unchecked")这个注释: @SuppressWarnings("unchecked") 有关详细信息,请参见此处

您可以根据需要使用@SuppressWarnings注释。 看到这里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM