gpt4 book ai didi

java - 接口(interface)及其使用

转载 作者:行者123 更新时间:2023-11-29 03:45:29 27 4
gpt4 key购买 nike

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;
}
};

我无法理解这段代码中实际做了什么!!! CostFunction() 之前的new 表示什么。实际上,我对这一点的理解很困惑!

最佳答案

看看inner classes .你那里有一个内部接口(interface)的匿名内部实现,是一个非常肮脏的例子,这就是你难以理解它的原因。

如果你要将它分开,你会:

-一个独立的 ConstFunction 接口(interface)

public interface CostFunction{
public int cost(int[][] distanceMatrix,CharSequence x, CharSequence y,int i,int j);
}

-一个名为 CostFunctionOne 的独立 ConstFunction 实现

public class CostFunctionOne{
public int cost(int[][] distanceMatrix, CharSequence x, CharSequence y, int i, int j) {
return 1;
}
};

-一个名为 CostFunctionTwo 的独立 ConstFunction 实现

public class CostFunctiontTwo{
public int cost(int[][] distanceMatrix, CharSequence x, CharSequence y, int i, int j) {
return 2;
}
};

-使用上述的独立 MinimumEditDistance 类

public class MinimumEditDistance{
public static final CostFunction ONE = new CostFunctionOne();
public static final CostFunction TWO = new CostFunctionTwo();
}

虽然它们可能很丑陋,但有时您会选择对接口(interface)进行如此快速的实现,因为您可以访问容器类中的变量和方法。使用监听器时,您会看到很多。

关于java - 接口(interface)及其使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132958/

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