0

在这里,AsciiChecker启用文本形式的矩阵规范。

abstract class AsciiChecker extends AlgoritmicChecker {

    String[] ascii;

    AsciiChecker(String title, final String ... ascii) {
        super(title, ascii[0].length(), ascii.length); // calls isCovered
    };

    boolean isCovered(int test, int statement) {
        return ascii[statement].charAt(test) == '1';
    }           
}

isCovered它需要矩阵参数在调用中可用。告诉我如果我在使用它之前初始化该场,我该如何射击我的腿,

    AsciiChecker(String title, final String ... ascii) {
        this.ascii = ascii;
        super(title, ascii[0].length(), ascii.length); // calls isCovered
    };
4

2 回答 2

1

如果您的超类正在使用您的数组的数据,请拉到String[] ascii;超类,在那里初始化该字段并isCovered通​​过 getter 访问它或修改签名isCovered并将正确的数组作为参数传递。

于 2013-10-24T13:11:55.123 回答
0

您需要摆脱对超类中可覆盖方法的调用。来自 Effective Java,第 18 项:

将每个可覆盖方法的主体移动到私有“辅助方法”,并让每个可覆盖方法调用其私有辅助方法。然后用直接调用可覆盖方法的私有辅助方法来替换可覆盖方法的每次自用。

于 2013-10-25T14:20:56.930 回答