gpt4 book ai didi

java - 如何使接口(interface)实例方法只接受同一类的参数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:06 24 4
gpt4 key购买 nike

我想使用这样的界面:

public interface ResultItem {
public int getConfidence();
public boolean equals(ResultItem item);
public ResultItem cloneWithConfidence(int newConfidence);
}

我用代表语音识别结果的不同种类的对象来实现它。

我的想法是,我希望只比较同类结果。也就是说,如果我创建一个实现 ResultItem 的类 IntResult,我希望方法签名变为:

public boolean equals(IntResult item);
public IntResult cloneWithConfidence(int newConfidence);

我觉得我的界面存在设计缺陷,因为现在我对 cloneWithConfidence 和其他返回 ResultItem 的方法的结果使用了非常难看的转换。

有没有更好的办法?

最佳答案

有一个常见的成语是这样的:

public interface ResultItem<T extends ResultItem<T>> {
public int getConfidence();
public boolean equals(T item);
public T cloneWithConfidence(int newConfidence);
}

public class IntResult implements ResultItem<IntResult> {
//...
}

关于java - 如何使接口(interface)实例方法只接受同一类的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5157233/

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