gpt4 book ai didi

java - 如何使用抛出异常的方法初始化最终静态数据成员

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

我正在尝试初始化我类(class)的一些 static final 数据成员。

这就是我正在尝试的。

package mypkg;
import java.util.*;
import java.text.SimpleDateFormat;
public class Customer {
...
private static SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
private static final Date DOB_MIN=sdf.parse("1-1-1985");
private static final Date DOB_MAX=sdf.parse("31-12-1995");
...
}

但据我所知,.parse() 会抛出必须处理的 ParseException

但是如您所见,您不能在那里使用 try-catchException Delegation

我也不能使用static initializer block,因为这些成员本质上是final

所以

有什么办法可以实现吗?

简而言之,

如何使用抛出异常的方法初始化最终静态数据成员n

最佳答案

创建一个委托(delegate)给 sdf.parse 并捕获异常的静态解析函数。

private static SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
private static final Date DOB_MAX = safeParse("31-12-1995");

static Date safeParse(String input) {
try {
return sdf.parse(input);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}

关于java - 如何使用抛出异常的方法初始化最终静态数据成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679066/

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