java - intellij idea为什么说函数未使用

标签 java intellij-idea

这段代码:

public class Main {
    public static void main(String[] args) {
        My<H> m = new My<>(new H());
        m.get();
    }
}

interface iface {
    void run();
}
class H implements iface {
    @Override
    public void run() {
        System.out.println("ok");
    }
}

class My<F extends H & iface> {
    private F o;
    My(F o) {
        this.o = o;
    }
    void get() {
        o.run();
    }
}

在 Idea Intelligence 程序版本 2019.2 中,我收到一个灯泡,其中显示 iface 界面中未使用 run 函数的通知。如何解决这个问题?

最佳答案

IntelliJ 这么说是因为即使删除 run 也不会破坏任何内容。唯一一次调用 runo.run(),但 o 绝对是 H 的子类(根据泛型约束),所以无论 iface 是否声明 run 方法,它都肯定声明了 run 方法。

消除此警告的一种方法是使用通用约束F extends iface

关于java - intellij idea为什么说函数未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148972/

相关文章:

java - Java中如何防止 Debug模式的代码被编译成类?

eclipse intellij 可以将 Github 用于同一个项目

intellij-idea - 有没有办法使用intellij代码/文件模板生成多个文件/类?

java - Kerberos Spring javax.security.auth.login.LoginException : Unable to obtain password from user

java - 如何在开发环境中使用maven-docker以避免重复下载jar?

java - Android Opencv 中的快速角点检测 : Corner points not drawn

intellij-idea - 如何更改用于在 Windows 上运行 IntelliJ 的 JVM

intellij-idea - IntelliJ IDEA 中缺少丢帧

intellij-idea - 如何将非源文件夹添加到 IntelliJ IDEA 项目

java - 在循环中查找字符串的索引