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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值