这段代码:
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
也不会破坏任何内容。唯一一次调用 run
是 o.run()
,但 o
绝对是 H
的子类(根据泛型约束),所以无论 iface
是否声明 run
方法,它都肯定声明了 run
方法。
消除此警告的一种方法是使用通用约束F extends iface
。
关于java - intellij idea为什么说函数未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148972/