`

枚举,语法糖:泛型,foreach

 
阅读更多

语法糖:泛型,foreach 。编译后会进行擦除。不是真正的语法。

 

List<String> list = new ArrayList<String>();
		list.add("aaa");
		for(String s : list){
			System.out.println(s);
		}
		for(int i=0;i<list.size();i++){
			String str = list.get(i);
			System.out.println(str);
		}

 

使用jad,进行反编译。不要用jd-gui.     。。下载 http://varaneckas.com/jad/

 

用法

c:\java\>jad example1.class
c:\java\>jad *.class
结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。

 

        List list = new ArrayList();
        list.add("aaa");
        String s;
        for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(s))
            s = (String)iterator.next();

        for(int i = 0; i < list.size(); i++){
            String str = (String)list.get(i);
            System.out.println(str);
        }

 

原生枚举类

public enum ResType {
	SUCCESS(10, "success"),
	NO_ACCOUNT(11, "query empty");
	
	private ResType(int code, String msg) {
		this.code = code;
		this.msg = msg;
	}
	
	private int code;
	private String msg;
	
	public String getMsg() {
		return msg;
	} 
	
	public int getCode() {
		return code;
	}
}

 反编译后的枚举类

public final class ResType extends Enum{
    private ResType(String s, int i, int code, String msg){
        super(s, i);
        code = code;
        this.msg = msg;
    }
    public static final ResType SUCCESS;
    public static final ResType NO_ACCOUNT;
    private int code;
    private String msg;
    private static final ResType ENUM$VALUES[];
    static {
        SUCCESS = new ResType("SUCCESS", 0, 10, "success");
        NO_ACCOUNT = new ResType("NO_ACCOUNT", 1, 11, "query empty");
        ENUM$VALUES = (new ResType[] {
            SUCCESS, NO_ACCOUNT
        });
    }
}

 

分享到:
评论

相关推荐

    Java中的语法糖.docx

    Java中的语法糖是一种编程语言设计策略,旨在提升代码的可读性和编写效率,而不改变语言的基本功能。在Java中,语法糖主要由编译器处理,它们在编译时会被转化为基本的语法结构,以便Java虚拟机(JVM)能够理解和执行...

    C#语言规范2.0(C# 2.0中的重点难点)

    - **20.8.9 foreach 语句**:遍历泛型类型的集合。 - **20.9 查找规则的修改** - **20.9.1 命名空间和类型名称**:在泛型上下文中解析类型名称。 - **20.9.2 成员查找**:在泛型类型中查找成员。 - **20.9.3 ...

    泛型+枚举+反射.docx

    在集合上使用泛型的语法通常表现为`Collection&lt;T&gt;`,其中`T`代表任意类型,我们称之为类型参数。在实际使用中,我们会指定具体的类型,如`List&lt;String&gt;`。在创建和操作泛型集合时,可以通过普通for循环、增强for循环...

    Java基础入门教程 第9章 Java的高级特性(共32页).ppt

    Java的高级特性主要涵盖泛型、枚举、增强for循环(也称为foreach循环)、注解(Annotation)以及可变参数等。这些特性极大地提升了Java语言的灵活性、安全性和可读性,是Java开发者必备的知识点。 1. **泛型**: ...

    foreach的简单使用技巧.rar

    在C#中,`yield return`常用于生成迭代器,配合`foreach`可以轻松实现枚举或无限序列。例如,生成斐波那契数列: ```csharp public static IEnumerable&lt;int&gt; Fibonacci() { int a = 0, b = 1; while (true) {...

    C# + C#语法全解

    3. 泛型:泛型提供了一种方式来创建可重用的组件,这些组件可以处理多种数据类型,提高效率并避免类型转换。 4. 构造器与析构函数:构造器用于初始化新对象,析构函数用于释放资源,但C#更推荐使用`IDisposable`接口...

    非常详细的C#语法全解

    - **常量与枚举**:const用于定义常量,不可更改;enum用于创建一组命名的整数常量,便于代码可读性。 2. **流程控制** - **条件语句**:if、else、switch用于根据条件执行不同代码块。 - **循环结构**:for、...

    c#Foreach.rar

    在C#编程语言中,`foreach`循环是一个非常重要的控制流结构,用于遍历集合、数组或枚举类型的元素。这个`c#Foreach.rar`压缩包包含了一个名为`foreach.txt`的文本文件,很可能是对`foreach`用法的简要说明。在这里,...

    Java笔记——2017年3月3日

    5. **foreach循环**:Java 5引入的增强型for循环,也称为foreach循环,简化了遍历数组和集合的操作。它提供了简洁的语法,避免了索引变量和迭代器的使用,使代码更易读。 6. **可变参数**:自Java 5起,可变参数...

    详解Java中的增强 for 循环 foreach

    在 Java 中,还有很多其他的语法糖,例如泛型、自动拆箱、自动装箱、内部类、枚举等等,这些语法糖能够方便程序员进行开发,提高性能,并减少代码出错的几率。 Java 中的增强 for 循环 foreach 是一种非常有用的...

    Java 5.0 API 中文版

    6. **增强的for循环(foreach)**:也称为foreach循环或迭代器简化,允许简洁地遍历集合、数组和其他迭代器支持的数据结构,降低了代码复杂性。 7. **类型推断**:在泛型中,编译器可以根据上下文推断出类型参数,...

    C# 语法全解

    本篇文章将全面解析C#语法,包括空间命名、枚举、类型、异常处理和语句等核心概念。 1. **空间命名**: 在C#中,代码组织通常基于命名空间(Namespace)。命名空间是用来分隔不同模块的代码,避免命名冲突。例如,...

    NIIT JAVA教学 各章教程PPT

    "JAVA-SE5练习题.pdf"可能包含了Java SE 5版本的相关练习,这部分可能会涉及到泛型、枚举、可变参数、增强的for循环(foreach)等新特性。 1. **泛型**:泛型引入了类型参数的概念,提高了代码的类型安全性和重用性...

    c#全面经典总结

    5. 泛型:泛型允许创建类型参数化的类、接口和方法,提高了代码的复用性,减少了类型转换的开销。 6. 枚举和结构:枚举是整型常量的集合,结构是轻量级的值类型,适合存储小数据结构。 7. 异常处理:C#使用try-...

    .NET Windows编程系列课程(2):C#语法和面向对象编程

    6. 枚举与委托:了解枚举用于表示一组预定义的值,以及委托作为事件处理机制的核心。 7. 泛型接口和泛型类:学习如何定义和使用泛型接口和泛型类,提高代码的复用性。 8. 高级面向对象:深入研究接口继承、匿名...

    C#题目.rar

    3. 控制结构:C#提供了多种控制结构,包括条件语句(如`if`、`else`)、循环(如`for`、`while`、`foreach`)以及跳转语句(如`break`、`continue`),用于控制程序的流程。 4. 函数与方法:函数是一段可重用的代码...

    C#,asp.net面试资料

    6. 枚举与结构:枚举是一种特殊的类型,用于定义一组相关的常量;结构是值类型,通常用于表示轻量级的数据结构。 【ASP.NET Web开发】 ASP.NET是.NET Framework的一部分,用于构建动态Web应用程序。它提供了多种...

    C#语法篇(上)

    10. **枚举与Flags属性**:C# 2.0中,可以使用FlagsAttribute标记枚举,表明它可以被当作位标志使用,便于进行位运算。 以上只是部分C# 2.0新特性概述,实际教程中会通过实例详细解析这些特性的应用和使用场景。...

    Java开发的帮助文档1.6版本

    - **泛型**:泛型允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率和可读性。 - **枚举**:枚举类型提供了一种创建固定数量对象的方式,常用于表示有限的集合,如状态、方向等。 ...

    C# 语法全解(文档)

    2. 泛型(Generics):泛型提供了一种方式来创建类型安全且能重复使用的数据结构和算法,避免了类型转换的开销。 3. 委托(Delegates)和事件(Events):委托是类型安全的函数指针,可以用来传递方法作为参数。...

Global site tag (gtag.js) - Google Analytics