public class MinimumEditDistance {
public interface CostFunction{
public int cost(int[][] distanceMatrix,CharSequence x, CharSequence y,int i,int j);
}
public static final CostFunction ONE = new CostFunction() {
public int cost(int[][] distanceMatrix, CharSequence x, CharSequence y, int i, int j) {
return 1;
}
};
public static final CostFunction TWO = new CostFunction() {
public int cost(int[][] distanceMatrix, CharSequence x, CharSequence y, int i, int j) {
return 2;
}
};
我無法理解此代碼中實際做了什麼! new
在CostFunction()
之前表示什麼。其實,我對這個很瞭解!接口及其用法
「這只是CostFunction接口的匿名實現。」 這是什麼意思iozee?意味着在這段代碼中,ONE和TWO是什麼 - 變量,對象是什麼? 如果它們是兩個不同類的實例,那麼「public static final CostFunction ONE」是什麼意思?它是CostFunction的實例,因爲這是不可能的,對吧? – agarwav
@ user1468694這就像聲明實現CostFunction接口的CostFunctionImpl類,然後將**新的CostFunctionImpl()**分配給ONE,與TWO相同,但例如將會有一個CostFunctionImpl2實例。 – iozee
@ user1468694 public static final CostFunction ONE表示ONE是* CostFunction類型*。當你實現一個類的接口時,除了類的類型之外,它的實例也是CostFunction類型的。我的意思是,在這種情況下,我們對連接到ONE的對象的類不感興趣,但它是什麼類型。 – iozee