gpt4 book ai didi

java - 传递给类的接口(interface)如何调用该类的方法?

转载 作者:行者123 更新时间:2023-12-01 17:55:52 25 4
gpt4 key购买 nike

假设我有以下界面

public interface I {
public int evaluate();
}

以及下面的类

public class A {
// ...
public int getX(){}
public int evaluateX(I model){
return model.evaluate();
}
}

那么,我可以实现 I 这样

class Model implements I {
@Override
public int evaluate() {
return getX() + 1;
}
}

其中的实现正在调用类A的方法?

我了解反射,但我想了解静态技术。
谢谢

最佳答案

简单的答案是否定的。

此外,这看起来像是紧密耦合,因为接口(interface)必须了解它所注入(inject)的类。

您可能想要做的是使用 int 参数化 evaluate 方法及其实现,这样您就可以将其作为 getX() 传递> 在类 A 中调用时,然后在 Model 类的 evaluate 实现中递增 1

编辑

根据Andy Thomas的建议,您可能想进一步概括。

您可以使用声明 int getX() 方法(其中 >A 随后将实现)。

反过来,A 将调用 model.evaluate(this)Modelevaluate 实现会变成类似 return myGivenArgument.getX() + 1.

您可以根据上下文决定是否有必要。

关于java - 传递给类的接口(interface)如何调用该类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44828209/

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