相关疑难解决方法(0)

如何从Java中的字符串值获取枚举值?

说我有一个只是的枚举

public enum Blah {
    A, B, C, D
}
Run Code Online (Sandbox Code Playgroud)

我想找到一个字符串的枚举值,例如"A",这将是Blah.A.怎么可能这样做?

Enum.valueOf()我需要的方法是什么?如果是这样,我将如何使用它?

java enums

1890
推荐指数
22
解决办法
106万
查看次数

如何为Java 6枚举实现values()?

在Java中,您可以按如下方式创建枚举:

public enum Letter {
    A, B, C, D, E, F, G;

    static {
       for(Letter letter : values()) {
          // do something with letter
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

这个问题涉及"values()"方法.具体来说,它是如何实现的?通常,我可以在Eclipse中使用F3或CTRL + Click跳转到Java类的源代码(即使对于String,Character,Integer甚至Enum这样的类).可以查看其他枚举方法的来源(例如,valueOf(String)).

"values()"每次调用时都会创建一个新数组吗?如果我将它分配给局部变量然后修改其中一个元素,会发生什么(显然这不会影响values()返回的值,这意味着每次都会分配一个新数组).

它的代码是原生的吗?或者JVM /编译器是否专门处理它,只有当它无法证明它不会被修改时才从values()返回一个新实例.

java enums

66
推荐指数
1
解决办法
2万
查看次数

Java异常处理的最佳实践

我最近写了下面的代码; 它使用了很多异常处理.我认为它使代码看起来非常难以理解.我可以通过捕获泛型异常来缩短代码,例如

catch (Exception e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

但我也听说过捕获一般异常不是一个好的编码实践.

public class DataAnalyzerTester {
    /**
     * @param args args[0] stores the filename
     * @exception NoSuchElementException if user attempts to access empty list element
     * @exception ArithmeticException if user attempts to divide by 0
     * @exception ArrayIndexOutOfBoundsException if user supplied less than 3 arguments
     * @exception IOException problems with creating and writing files
     * @exception RuntimeException if user attempts to pass empty list to constructor
     */
    public static void main(String[] args) {

    try{ …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

9
推荐指数
2
解决办法
9265
查看次数

标签 统计

java ×3

enums ×2

exception-handling ×1