1. 程式人生 > >JavaSE8基礎 enum 對枚舉類進行反編譯查看其原理

JavaSE8基礎 enum 對枚舉類進行反編譯查看其原理

思考 2-2 extend cnblogs compile arr end 好好學習 感恩

禮悟:
好好學習多思考,尊師重道存感恩。葉見尋根三返一,活水清源藏於零。
虛懷若谷良心主,皓月當空自在王。願給最苦行無悔,誠勸且行且珍惜。


os :windows7 x64
jdk:jdk-8u131-windows-x64
ide:Eclipse Oxygen Release (4.7.0)

code:

package blog.jizuiku8;

/**
 * 枚舉類,JDK1.5提供的新特性
 * 
 * @author jizuiku
 * @version V17.10.03
 */
public enum Direction {
	North,South,West,East;
}

API:
技術分享


XjadCode:

// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   Direction.java

package blog.jizuiku8;


public final class Direction extends Enum
{

	public static final Direction North;
	public static final Direction South;
	public static final Direction West;
	public static final Direction East;
	private static final Direction ENUM$VALUES[];

	private Direction(String s, int i)
	{
		super(s, i);
	}

	public static Direction[] values()
	{
		Direction adirection[];
		int i;
		Direction adirection1[];
		System.arraycopy(adirection = ENUM$VALUES, 0, adirection1 = new Direction[i = adirection.length], 0, i);
		return adirection1;
	}

	public static Direction valueOf(String s)
	{
		return (Direction)Enum.valueOf(blog/jizuiku8/Direction, s);
	}

	static 
	{
		North = new Direction("North", 0);
		South = new Direction("South", 1);
		West = new Direction("West", 2);
		East = new Direction("East", 3);
		ENUM$VALUES = (new Direction[] {
			North, South, West, East
		});
	}
}

  經過 反編譯工具查看.class文件後,看到了該特性的運行原理。



Java優秀,值得學習。
學習資源:API手冊 + Java源碼 + Xjad + 清凈的心地。

JavaSE8基礎 enum 對枚舉類進行反編譯查看其原理