之前一直没写过Enum。。今天看到系统后台代码,很多的泛型和枚举。。都有些看不懂。
下面写了个小例子,比如Animal对象,枚举一个dog后就得到一个dog对象。
public class Animal {
private String name;
private int age;
public Animal(String name){
this.name = name;
this.age = 111;
}
//略了getter和setter
}
枚举类:
public enum AnimalEnum{
DOG(new Animal("DOG")),//DOG就是一个AnimalEnum对象
CAT(new Animal("CAT"));
private final Animal animal;
private AnimalEnum(Animal animal){
this.animal = animal;
}
public Animal getAnimal(){//得到DOG的私有变量animal
return animal;
}
}
测试:
public class TestMain {
public static void main(String[] args){
System.out.println(AnimalEnum.DOG.getAnimal().getAge());
}
}
抄一点。。:http://www.cnblogs.com/hemingwang0902/archive/2011/12/29/2306263.html#title-7
可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。
接下来是泛型,我觉得泛型就是把类也作为参数传到了类中,下面是一个泛型的小例子。
public class GenericClass<C,PK extends Serializable> {
private C entity;
private PK primaryKey;
public GenericClass(C c,PK id){
entity = c;
primaryKey = id;
}
public void print(){
System.out.println("id = "+primaryKey+"; entity="+entity);
}
}
一个entity1类
public class Entity1 {
public String toString() {
return "entity";
}
}
运行测试:
public class TestMain {
public static void main(String[] args) {
GenericClass gc = new GenericClass<Entity1, Integer>(new Entity1(), 1);
gc.print();
}
}
打印结果:
id = 1; entity=entity
分享到:
相关推荐
要求: 在原有学生管理系统中,针对读文件、类型转换、数组等操作引入异常处理机制; 编写一个表示某门课程成绩的泛型类 class ...要求:成绩可以是百分制,也可以是A-E(分别以字符串和枚举类型两种手段表示A-E)。
3.7.1 whi.1 e和do/while循环 3.7.2 for循环 3.7.3 foreach循环 3.7.4 switch语句 3.8 跳转语句 3.8.1 break语句 3.8.2 continue语句 3.8.3 go to语句 3.9 c#预处理器指令 3.9.1 排除和包含代码 3.9.2 ...
枚举 IO Java反射 动态代理 序列化 注解 元注解、自定义注解、Java中常用注解使用、注解与反射的结合 Spring常用注解 JMS 什么是Java消息服务、JMS消息传送模型 JMX java.lang.management.*、 javax.management.* ...
13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 13.5.3调用遗留代码 13.6约束与局限性 13.6.1基本类型 13.6.2运行时类型查询 13.6.3异常 13.6.4数组 13.6 5泛型类型的...
13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 13.5.3调用遗留代码 13.6约束与局限性 13.6.1基本类型 13.6.2运行时类型查询 13.6.3异常 13.6.4数组 13.6 5泛型类型的...
13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 13.5.3调用遗留代码 13.6约束与局限性 13.6.1基本类型 13.6.2运行时类型查询 13.6.3异常 13.6.4数组 13.6 5泛型类型的实例化 13.6...
13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 13.5.3调用遗留代码 13.6约束与局限性 13.6.1基本类型 13.6.2运行时类型查询 13.6.3异常 13.6.4数组 13.6 5泛型类型的...
13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 13.5.3调用遗留代码 13.6约束与局限性 13.6.1基本类型 13.6.2运行时类型查询 13.6.3异常 13.6.4数组 13.6 5泛型类型的...
13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 13.5.3调用遗留代码 13.6约束与局限性 13.6.1基本类型 13.6.2运行时类型查询 13.6.3异常 13.6.4数组 13.6 5泛型类型的...
Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。 本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++先驱Barbara E....
Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++ 先驱Barbara E. Moo...
13.9.4检验E-mail的合法性432 13.10本章小结434 第5篇桌面程序开发 第14章GUI程序设计436 14.1GUI程序设计的基本概念436 14.1.1组件437 14.1.2布局管理437 14.1.3事件处理437 14.2开发工具Eclipse简介438 ...
可以遍历一个TypeList或者枚举值范围CEnumRange,然后以满足条件的类型回调用户的模板函数。 其广泛的应用场景即是把运行期数据以一种非hard-code的方式转化为编译期数据,从而满足元程序对编译期数据的需求。 ☆ ...
第10章 结构体、共用体、位操作和枚举类型 第11章 文字处理 第12章 数据结构 第13章 C预处理 第14章 C语言的其他专题 第15章 基于Allegro C函数库的游戏编程 第16章 排序:更深入的透视 第17章 C99简介 第18章 C++,...
第10章 结构体、共用体、位操作和枚举类型 第11章 文字处理 第12章 数据结构 第13章 C预处理 第14章 C语言的其他专题 第15章 基于Allegro C函数库的游戏编程 第16章 排序:更深入的透视 第17章 C99简介 第18章 C++,...