java5增加了enum,其实对enum的处理很简单,编译器增加了一些功能而以。
看代码:
-
public enum Season{
- Spring,Summer,Autumn,Winter
- }
javap -c Season
就可以看出来具体的处理了,不过直接反编译更容易理解,使用jad处理的结果。
-
-
-
-
-
-
-
public final class Season extends Enum
- {
-
-
public static final Season[] values()
- {
-
return(Season[])$VALUES.clone();
- }
-
-
public static Season valueOf(Strings)
- {
-
return (Season)Enum.valueOf(Season,s);
- }
-
-
private Season(String s,int i)
- {
-
super(s,i);
- }
-
-
public static final Season Spring;
-
public static final Season Summer;
-
public static final Season Autumn;
-
public static final Season Winter;
-
private static final Season $VALUES[];
-
-
static
- {
-
Spring=new Season("Spring",0);
-
Summer=new Season("Summer",1);
-
Autumn=new Season("Autumn",2);
-
Winter=new Season("Winter",3);
-
$VALUES=(new Season[]{
- Spring,Summer,Autumn,Winter
- });
- }
- }
-
一个从java.lang.Enum<E>继承下来的final类,没有什么特殊的地方。使用的时候
Season season = Season.Spring;
不过就是直接访问了Season类中定义的静态常量Spring而已。
其实从java 5开始加入的一些新的语法特性,都是编译器增加了处理,而对于jvm而言,基本不需要什么变化。
分享到:
相关推荐
简单介绍了DNS和ENUM的原理及在IMS网络中的使用
首先,我们来看`enum.c`这个源文件。在C语言中,枚举的声明语法如下: ```c enum Identifier { Constant1, Constant2, ... }; ``` 这里的`Identifier`是枚举类型的名称,`Constant1`, `Constant2`等是枚举常量...
首先,让我们理解RadioButton的基本工作原理。RadioButton控件用于在一系列互斥的选项中让用户做出单选。在WPF中,RadioButton通常通过IsChecked属性与其他RadioButton进行分组,并通过GroupName属性确保同一组内的...
`DNS-ENUM.rar_ENUM/DNS_dns_enum 域名解析`这个压缩包文件包含了关于DNS枚举和域名解析的相关工具或代码实现,这通常涉及到网络安全分析、漏洞检测或网络监控等领域。 1. **DNS枚举**: DNS枚举是一种网络安全...
首先,让我们深入理解一下Better Enums的核心概念。在标准C++中,枚举(enum)是一种定义常量集合的方式,但它们有一些限制,如类型安全不足、缺少自定义操作和表达式支持等。Better Enums通过提供一种更强大的枚举...
根据提供的信息,我们可以详细解析如何使用C++来枚举...通过理解注册表的基本概念以及上述API函数的工作原理,可以轻松实现这一目标。此外,本文还提供了一个具体的实现示例,可以帮助开发者更好地理解和应用这些技术。
1. **Frida原理**:Frida工作于进程注入模式,它能够将自身注入到目标进程中,然后通过JavaScript来实现对目标进程的代码插桩。JavaScript代码在目标进程中运行,可以直接操作内存、API调用等,提供极高的灵活性。 ...
10. **学习与实践**: 通过这个案例,学习者不仅可以了解到枚举字函数的原理和使用,还能锻炼实际编程技能,将理论知识应用到实际项目中,增强解决实际问题的能力。 总结:这个压缩包中的PDF文档提供了一个使用VC++...
4. **枚举的原理:** - 枚举类型在编译后会被转换成一个特殊的类,该类继承自`java.lang.Enum`。 - 枚举中的每个元素实际上都是该类的一个实例,并且是静态和final的。 - 编译后的枚举类类似于以下结构: ```...
3. **枚举的底层原理**: 当编译器遇到枚举类型时,会自动为每个枚举常量创建一个私有的构造函数,并在类的静态初始化块中创建实例。这些实例存储在静态字段中,确保它们在类加载时创建,因此枚举对象是线程安全的...
在编程领域,枚举(Enum)是一种特殊的数据类型,它允许我们定义一组相关的常量,这些常量可以作为变量的值。...在现代C++中,虽然有更高级的库(如C++标准库的`<filesystem>`),但理解这些基本原理仍然是有价值的。
在编程领域,结构(Struct)和枚举(Enum)是两种...在VS2005环境下,你可以方便地调试和测试这些示例,加深对这两种数据类型工作原理的理解。通过不断练习和探索,你将能够灵活运用Struct和Enums解决实际编程问题。
C 语言的关键字有:auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、...
2. 定义关键字数组:char *keyword[34]={"auto","break","case","char","const","continue","default","do","double", "else","enum","extern","float","for","goto","if","int","long","register", "return","short...
在这个实现中,我们还使用了 enum 类型来定义 Token 类型,然后使用 switch 语句来进行 Token 的分类和处理。此外,我们还使用了 namespace std; 来访问 standard 库中的函数和变量。 在这个 C++ 实现中,我们使用...
编译原理PL0源码(C语言版) /*** PL0 COMPILER WITH CODE GENERATION ***/ //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //----...
C语言的关键字有auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、...