gpt4 book ai didi

java - 在 java 中,我想生成编译时错误而不是运行时错误

转载 作者:行者123 更新时间:2023-12-03 23:31:19 25 4
gpt4 key购买 nike

我目前正在做这样的事情;

import java.util.*;

public class TestHashMap {

public static void main(String[] args) {

HashMap<Integer, String> httpStatus = new HashMap<Integer, String>();
httpStatus.put(404, "Not found");
httpStatus.put(500, "Internal Server Error");

System.out.println(httpStatus.get(404)); // I want this line to compile,
System.out.println(httpStatus.get(500)); // and this line to compile.
System.out.println(httpStatus.get(123)); // But this line to generate a compile-time error.

}

}

我想确保在我的代码中的每个地方都有一个 httpStatus.get(n),n 在编译时有效,而不是稍后在运行时发现。这可以以某种方式强制执行吗? (我使用纯文本编辑器作为我的“开发环境”。)

我是 Java 的新手(本周),所以请多多关照!

谢谢。

最佳答案

在这个具体的例子中,它看起来像一个 enum您可能正在寻找:

public enum HttpStatus {
CODE_404("Not Found"),
CODE_500("Internal Server Error");

private final String description;

HttpStatus(String description) {
this.description = description;
}

public String getDescription() {
return description;
}
}

枚举是在 Java 中创建常量的便捷方式,由编译器强制执行:

// prints "Not Found"
System.out.println(HttpStatus.CODE_404.getDescription());

// prints "Internal Server Error"
System.out.println(HttpStatus.CODE_500.getDescription());

// compiler throws an error for the "123" being an invalid symbol.
System.out.println(HttpStatus.CODE_123.getDescription());

有关如何使用枚举的更多信息,请参阅 Enum Types来自 The Java Tutorials 的教训.

关于java - 在 java 中,我想生成编译时错误而不是运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232903/

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