抽象类中的 getClass() 给出了 Ambiguous 方法调用

2022-08-31 15:18:01

我有一个公共抽象类,我正在尝试使用该方法,因为我需要来自扩展我的抽象类的类的信息。例如:getClass()

public String getName() {
    return getClass().getSimpleName();
}

但是,IntelliJ报告了这一点:

Ambiguous method call. Both
getClass    ()    in Object and
getClass    ()    in Object match.

代码运行良好,但是在我的IDE中有数十个错误警告有点妨碍我的方式。它通过大量误报破坏了我的工作流程。

为什么显示这些错误,我该怎么做才能看不到它们?


答案 1

像这样发出我的呼吁getClass()Object

((Object) this).getClass()

为我解决了这个问题(使用非抽象类)。这不是很好,但它正在工作。

此外,从项目设置中操作 Android SDK 并从 Android SDK 中删除所有 JDK jar 可以解决该错误。当然,您必须在项目中引用它才能利用该修复程序。


答案 2

代码很好,但它是IntelliJ中的一个错误。

错误报告另一个

甚至还有更多错误报告具有此问题的不同变体。正如duffymo在注释中指出的那样,也可能是因为类路径中存在不同版本的JDK。


推荐