gpt4 book ai didi

java - 为什么Java在枚举中提供静态 block ?

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

这是我枚举天数的代码:

enum Days {
MON("Monday"),
TUE("Thuesday"),
WED("wedesday"),
THU("Thursday"),
FRI("Firday"),
SAT("saturday"),
SUN("Sunday");

String name;

Days(String a) {
name=a;
}
}

这是上面 Enum 的 Days.class 文件:

final class p1.Days extends java.lang.Enum<p1.Days> {
public static final p1.Days MON;
public static final p1.Days TUE;
public static final p1.Days WED;
public static final p1.Days THU;
public static final p1.Days FRI;
public static final p1.Days SAT;
public static final p1.Days SUN;

static {};

public static p1.Days[] values();
public static p1.Days valueOf(java.lang.String);
}

我的问题是Java为什么提供静态 block ,它有什么用?

最佳答案

使用 javap -c Days,您将发现这个静态 block 中的内容。编译器实际上编译枚举,就好像它是一个像这样编写的常规类:

public final class Days extends Enum<Days> {
public static final Days MON;
...

static {
Days.MON = new Days("Monday");
...
}

...
}

关于java - 为什么Java在枚举中提供静态 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23479755/

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