有人可以解释一下这里发生了什么吗?为什么“不能从静态上下文引用非静态变量”。出现在这段代码中?我尝试将 parseBinary 更改为非静态。我尝试将 BinaryFormatException 类更改为静态...(不允许)。我对这个错误的理解很薄弱。我知道我通常可以交换一些静态和公开的词,并让它正常工作。没有这样的运气。这是一个家庭作业问题……但这项工作并不围绕错误展开。它与创建错误形成二进制字符串时抛出的自定义异常类有关。因此,虽然我的问题会帮助我回答问题,但它不会给我答案。
public class binaryToDecimal {
public static void main(String[] args) {
try {
System.out.println(parseBinary("10001"));
System.out.println(parseBinary("101111111"));
} catch (BinaryFormatException ex) {
ex.getMessage();
}
}
public static int parseBinary(String binaryString)
throws BinaryFormatException {
int value = 0;
for (int i = 0; i < binaryString.length(); i++) {
char ch = binaryString.charAt(i);
if (ch != '0' && ch != '1') {
throw new BinaryFormatException(String message);
value = 0;
} else
value = value * 2 + binaryString.charAt(i) - '0';
}
return value;
}
class BinaryFormatException extends Exception {
public BinaryFormatException(String message) {
super(message);
}
}
}