假設我有以下接口如何傳遞給類的接口可以調用該類的方法?
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
的方法?
我知道反射,但我想知道靜態技術。
謝謝
你有模型和我之間的關係,但我和getX之間的關係在哪裏? – Dakoda
我認爲除了使用反射之外,還有其他方法可以做到這一點。你必須考慮這樣一個事實,即不是你從模型中調用函數的每個類都必須實現該函數。你爲什麼不簡單地讓類A實現接口呢? – Endzeit
有意義的名字可以幫助我們理解你在做什麼。如果你想讓接口方法I.evaluate()調用'A.getX()',那麼傳遞一個A對象給'I.evaluate()' - 'class I {public int evaluate(A myA); }'。或者,您可以將A對象作爲接口類型傳遞,以允許I.evaluate()對多個定義進行操作 - class I {public int evaluate(IX myX); }'。 –