`

E枚举和泛型

 
阅读更多

之前一直没写过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)。

    C#本质论(第3版)

    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 ...

    java8集合源码分析-Project:工程目录

    枚举 IO Java反射 动态代理 序列化 注解 元注解、自定义注解、Java中常用注解使用、注解与反射的结合 Spring常用注解 JMS 什么是Java消息服务、JMS消息传送模型 JMX java.lang.management.*、 javax.management.* ...

    Java2核心技术.part5

    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泛型类型的...

    Java2核心技术.part3

    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泛型类型的...

    Java2核心技术.part1

    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...

    Java2核心技术.part6

    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泛型类型的...

    Java2核心技术.part4

    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泛型类型的...

    Java2核心技术.part2

    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泛型类型的...

    C++ primer 第4版 原书+习题解答+源码 清晰pdf

    Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。  本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++先驱Barbara E....

    C++ Primer第四版【中文高清扫描版】.pdf

    Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++ 先驱Barbara E. Moo...

    Java开发技术大全 电子版

    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的方式转化为编译期数据,从而满足元程序对编译期数据的需求。 ☆ ...

    C大学教程(第五版·中文版).pdf【第一部分】

    第10章 结构体、共用体、位操作和枚举类型 第11章 文字处理 第12章 数据结构 第13章 C预处理 第14章 C语言的其他专题 第15章 基于Allegro C函数库的游戏编程 第16章 排序:更深入的透视 第17章 C99简介 第18章 C++,...

    C大学教程(第五版·中文版).pdf【第六部分】

    第10章 结构体、共用体、位操作和枚举类型 第11章 文字处理 第12章 数据结构 第13章 C预处理 第14章 C语言的其他专题 第15章 基于Allegro C函数库的游戏编程 第16章 排序:更深入的透视 第17章 C99简介 第18章 C++,...

Global site tag (gtag.js) - Google Analytics