`

java enum 常量相关方法记录

阅读更多
对于java enum 静态方法的理解。仅供自己参考。仅作记录。发现自己更习惯将博客当做自己的笔记。所以对于他人的借鉴意义不是很大。不过自己不想为了分享而分享。

线索如下:


package com.zhi.learnj2;

import java.util.Date;

import com.zhi.utils.DateUtil;

public enum ConstantSpecificMethod {
	DATE_TIME {
		@Override
		public String info() {
			return DateUtil.format(new Date());
		}
	},
	CLASS_PATH {
		@Override
		public String info() {
			return System.getenv("CLASS_PATH");
		}
	},
	USERNAME {

		@Override
		public String info() {
			return "jackiezhi"+ordinal();
		}
		
	},
	VERSION {
		@Override
		public String info() {
			System.out.println(username);
			fun();
			System.out.println("username is null ??? why");
			return null;
		}
	};
	public abstract String info();
	
	public void fun(){
		System.out.println(username);
	}
	protected String username;
	
	public static void main(String[] args){
		System.out.println("-----jackiezhi-----");
		for(ConstantSpecificMethod m: ConstantSpecificMethod.values()){
			System.out.println(m.info());
		}
	}
}

对ConstantSpecificMethod.class文件进行反编译后,结果如下。

public abstract class com.zhi.learnj2.ConstantSpecificMethod extends java.lang.E
num<com.zhi.learnj2.ConstantSpecificMethod> {
  public static final com.zhi.learnj2.ConstantSpecificMethod DATE_TIME;
  public static final com.zhi.learnj2.ConstantSpecificMethod CLASS_PATH;
  public static final com.zhi.learnj2.ConstantSpecificMethod VERSION;
  static {};
  public abstract java.lang.String info();
  public static com.zhi.learnj2.ConstantSpecificMethod[] values();
  public static com.zhi.learnj2.ConstantSpecificMethod valueOf(java.lang.String)
;
  com.zhi.learnj2.ConstantSpecificMethod(java.lang.String, int, com.zhi.learnj2.
ConstantSpecificMethod);
}



发现并没有关于
DATE_TIME {
		@Override
		public String info() {
			return DateUtil.format(new Date());
		}
	},


这些代码,那么代码藏在了哪里,
D:\Code\LearnJ\bin>javap com.zhi.learnj2.ConstantSpecificMethod$1
Compiled from "ConstantSpecificMethod.java"
class com.zhi.learnj2.ConstantSpecificMethod$1 extends com.zhi.learnj2.ConstantS
pecificMethod {
  com.zhi.learnj2.ConstantSpecificMethod$1(java.lang.String, int);
  public java.lang.String info();
}


终于找到了。
分享到:
评论

相关推荐

    JAVAAPI文档

    Java API文档是Java开发者不可或缺的参考资料,它详细记录了Java Development Kit (JDK) 中所有类、接口、方法和常量的信息。这份文档是官方提供的,确保了信息的准确性和完整性,为程序员提供了关于如何使用Java...

    Java官方文档API文档1.6中文版.rar

    10. **枚举**:Java 1.5引入的枚举类型,`enum`关键字创建的枚举类是一种特殊的类,可以包含常量和方法,提升了代码的可读性和安全性。 以上只是Java 1.6 API文档中的一小部分内容,实际文档包含了大量的类、接口、...

    Java枚举类的使用与注解

    枚举类的实例通常会自动继承java.lang.Enum类,因此它们可以使用一些内置的方法,如: - `values()`:返回枚举类的所有实例的数组。 - `valueOf(String)`:根据名称字符串转换为枚举实例。 - `name()`:获取枚举实例...

    Enum Return Message

    在Java编程语言中,"Enum Return Message"通常指的是使用枚举类型(enum)来封装返回消息,以便在处理业务逻辑时提供结构化和可维护的错误或状态信息。枚举是一种特殊的类,用于定义一组预定义的常量,非常适合表示...

    495.493.JAVA基础教程_枚举类与注解-每天一考(495).rar

    在Java中,枚举是一种特殊的类,用于定义一组相关的常量。这些常量通常表示固定的、有限的一组值。枚举在很多场景下非常有用,比如表示状态、方向、星期等。创建枚举类的基本语法如下: ```java public enum Color ...

    Java API 文档 JDK API 文档

    它是Oracle公司发布的官方文档,详尽地记录了Java开发工具包(JDK)中的所有类、接口、方法和异常,涵盖了Java语言的核心库和其他标准扩展。这份文档对于理解和使用Java编程语言至关重要,无论是初学者还是经验丰富...

    Java剪刀石头布小游戏源码整理

    3. **枚举类型(Enum)**:Java中的枚举用于定义一组固定的常量,非常适合表示游戏中的石头、剪刀、布这三个选项。通过枚举,我们可以确保只有这三种合法选择,并且方便比较它们之间的胜负关系。 4. **随机数生成**...

    java常用词汇汇总

    - **用途**:在Java中,`abstract`是一个关键字,用来定义抽象类或者抽象方法。抽象类是不能被实例化的类,通常包含一个或多个未实现的方法(抽象方法)。抽象方法是没有方法体的方法,必须由子类来实现具体的逻辑。...

    java编程常用英语单词解释

    24. Declare(java):声明,指的是声明某个变量或方法。 25. Default(关键字):默认值、缺省值,指的是某个变量或参数的默认值。 26. Delimiter:定义符、定界符,指的是某个字符串或文本中的分隔符。 27. ...

    498.496.JAVA基础教程_枚举类与注解-枚举类的理解(498).rar

    Java编程语言中的枚举类(Enumeration Class)是用于表示固定数量的常量集合,它提供了一种更加安全、规范的方式来处理常量。枚举在Java中是一个特殊的类,可以拥有方法和属性,使得代码更加清晰、易读。本教程将...

    Java API文档

    Java API文档是Java开发者不可或缺的参考资料,它详细记录了Java平台标准版(Java SE)的所有类库和接口,包括各种内置类、接口、方法、异常等。这份中文版的Java API文档,对于中国开发者而言,提供了更为便捷的...

    java常用类总结.docx

    枚举类型是Java中的常量集合,每个枚举成员都是`Enum`类的实例。枚举成员默认是`final`、`public`和`static`的,可以直接通过枚举名称来访问它们。例如: ```java public enum Color { RED, GREEN, BLUE } ``` ...

    JAVA常用英文词汇

    - **enum**: 枚举关键字,用于定义一组固定的常量集合,每个常量都是该枚举类型的一个实例。 - **attribute**: 属性,通常指的是对象的状态信息,比如对象的成员变量。 - **parameter**: 参数,方法调用时传递给方法...

    http-status:代表HTTP状态代码的Java常数和异常

    3. 如果需要自定义错误处理,可以捕获`HttpStatusCodeException`,根据异常携带的状态码信息执行相应的操作,如重试、记录日志或向用户显示错误信息。 总之,理解和熟练使用Java中的HTTP状态代码常量和异常对于任何...

    java必备1000单词学习

    28. **enum** - 枚举:Java中的一种数据类型,用于定义有限的命名常量集合。 29. **execute** - 执行:启动一个程序、命令或方法。 30. **exhibit** - 显示:在用户界面中展示信息或数据。 31. **exist** - 存在...

    Java中的reflect 反射的基本东西,

    可以获取枚举常量,以及枚举类的所有注解,也可以获取类、方法、字段上的注解。 8. **异常处理**:使用反射可能会抛出多种异常,如`ClassNotFoundException`, `IllegalAccessException`, `InstantiationException`,...

    良葛格Java JDK 5.0学习笔记

    《良葛格Java JDK 5.0学习笔记》是一份详尽记录了Java开发环境JDK 5.0核心特性和重要变化的学习资料。这份笔记深入浅出地讲解了Java编程语言在JDK 5.0版本中的诸多新特性,为初学者和有经验的开发者提供了宝贵的参考...

    511.509.JAVA基础教程_枚举类与注解-jdk8新特性:类型注解(511).rar

    例如,创建一个简单的注解来记录方法执行时间: ```java import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang....

Global site tag (gtag.js) - Google Analytics