gpt4 book ai didi

java - 如何在实现接口(interface)的类中实现静态方法?

转载 作者:行者123 更新时间:2023-12-02 06:51:29 24 4
gpt4 key购买 nike

我正在实现一个实现接口(interface)的 java 类。
POI 是,此类中的方法必须是静态的,但在接口(interface)中我不能(众所周知)将方法声明为静态,如果我尝试在类中声明它,我会收到此错误:“This静态方法无法隐藏 InterfaceName 中的实例方法”。

我在这个网站上搜索过,但没有找到任何解决方案,但有一个建议说创建一个实现该接口(interface)的抽象类,然后在该类中扩展该抽象类,但它不起作用。

有什么建议吗?

非常感谢大家!

最佳答案

发布的链接 mvw ( Why can't I define a static method in a Java interface? ) 描述了接口(interface)中不允许静态方法的原因以及为什么重写静态方法不是一个好主意(因此不允许)。

了解在什么情况下要使用静态方法会很有帮助。如果您只想调用该类的静态方法,只需按照 andy256 的建议为其指定另一个名称即可。如果您想从引用接口(interface)的对象中调用它,您真的需要该方法是静态的吗?

为了解决这个问题,我的建议是,如果您确实想调用与接口(interface)方法具有相同签名的静态方法,请调用私有(private)静态方法:

class MyClass implememts SomeInterface {

@Override
public int someMethod(int arg1, int arg2) {
return staticMethod(arg1, arg2);
}

private static int staticMethod(int arg1, int arg2) {
// TODO: do some useful stuff...
return arg1 + arg2;
}
}

关于java - 如何在实现接口(interface)的类中实现静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17970364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com