JavaSE8基礎 enum 對枚舉類進行反編譯查看其原理
阿新 • • 發佈:2017-10-08
思考 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 對枚舉類進行反編譯查看其原理