gpt4 book ai didi

java - 一个接口(interface)具有两个具有相同名称但不同签名的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:25 24 4
gpt4 key购买 nike

我有一个接口(interface),以jar、java src和target = 1.5的形式构建和提供

interface IGetter {
int getInternalID(final long externId);
int getInternalID(long externId, char specifier);
}

我在 java 1.8 中实现了一个内部静态类来实现这个接口(interface)

public static Calculator {
...
public static class LookupTable implements IGetter {
/* (non-Javadoc)
* @see com.mycompany.IGetter#getInternalID(long)
*/
@Override
public int getInternalID(long externId) {
....
return internId;
}

/* (non-Javadoc)
* @see com.mycompany.IGetter#getInternalID(long, char)
*/
@Override <-- Here compiler error; This method is not detected
as beeing in the interface.
public int getInternalID(long externalId, char specifier) {
return ...;
}
}
}

编译器未将第二个 getInternal(long, char) 方法检测为接口(interface)方法。

点击包含接口(interface)的jar文件,即使是eclipse中的类查看器,在方法概览的左 Pane 中显示缺少该方法,而在编辑器 View 中显示该方法是在接口(interface)中实现的.

怎么了,一个接口(interface)中的两个方法不能重名吗?
java编译器为什么要编译接口(interface)? (源和目标 = java 1.5)
为什么java 1.8编译不识别为接口(interface)方法。 (源代码和目标 1.8)

编译器错误是:Calculator.LookupTable 类型的方法 getInternalID(long, char) 必须覆盖或实现父类(super class)型方法 Calculator.java

最佳答案

原因是类路径中有另一个jar文件是用旧版本的IGetter接口(interface)编译的。

感谢用户 purring pigeon,他问我是否确定我导入了正确的接口(interface)。

关于java - 一个接口(interface)具有两个具有相同名称但不同签名的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31925376/

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