CodeQL 文档

无法实现接口

ID: java/unimplementable-interface
Kind: problem
Security severity: 
Severity: warning
Precision: very-high
Tags:
   - maintainability
   - useless-code
Query suites:
   - java-security-and-quality.qls

单击以在 CodeQL 存储库中查看查询

包含方法的接口,其返回类型与 java.lang.Object 上的受保护方法冲突,永远无法实现,因为不能仅基于其返回类型重载方法。

建议

如果接口有用,请对方法命名,使其与 Object 中的方法不冲突。否则,您应该删除该接口。

示例

在以下示例中,接口 I 无用,因为 clone 方法必须返回类型 java.lang.Object

interface I {
    int clone();
}

class C implements I {
    public int clone() {
        return 23;
    }
}

任何尝试实现接口都会产生错误


InterfaceCannotBeImplemented.java:6: clone() in C cannot override
  clone() in java.lang.Object; attempting to use incompatible return
  type
found   : int
required: java.lang.Object
  public int clone() {
             ^
1 error

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私