之前一直没写过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
分享到:
相关推荐
集合、泛型和枚举都是Java开发中常见的概念,它们在处理数据和编写代码时起到关键作用。 首先,Java集合是用于存储一组对象的容器。在Java中,集合分为两大类:`Collection`和`Map`。`Collection`接口是所有单一值...
9. **泛型和枚举**:泛型也可应用于枚举类型,为每个枚举常量提供一种类型。 10. **桥接方法**:由于类型擦除,编译器可能会生成桥接方法来保持泛型方法的多态性。这些方法在字节码中可见,但在源代码中不可见。 ...
在枚举内部,可以通过`Enum<E extends Enum<E>>`的泛型方法`getDeclaringClass()`获取枚举常量所属的枚举类,以及`name()`和`ordinal()`方法获取常量的名称和在枚举中的位置。 总结来说,Java枚举类型提供了一种...
此外,它也用于接口(如`Comparable<T>`)、枚举(`EnumSet<E>`)、方法返回类型以及匿名类等场景。 总的来说,Java泛型提供了一种强大的工具,使我们能够在编写代码时进行更严格的类型检查,减少运行时错误,提高...
此外,泛型还可以与其他Java特性结合使用,比如接口、抽象类、枚举等,以提供更加复杂和灵活的设计模式。 泛型还有几个关键特性值得了解: 1. **类型擦除**:Java的泛型在编译后会被擦除,生成的字节码并不包含泛型...
C#编程语言基础知识点 本资源摘要信息涵盖了C#编程语言的基础知识点,包括泛型队列的...本资源摘要信息涵盖了C#编程语言的基础知识点,包括泛型队列的设计、迭代器方法的应用、枚举器类的设计和List类的泛型等效类。
例如,`Result, E>` 枚举类型就是 Rust 标准库中使用泛型的一个典型例子。它被广泛用于表示可能出错的操作的结果,其中 `T` 表示成功的值类型,而 `E` 表示错误的值类型。这样的设计使得 `Result` 可以被用于各种...
要求: 在原有学生管理系统中,针对读文件、类型转换、数组等操作引入异常处理机制; 编写一个表示某门课程成绩的泛型类 class ...要求:成绩可以是百分制,也可以是A-E(分别以字符串和枚举类型两种手段表示A-E)。
通过`<E extends Enum<E>>`,Java强制确保比较的两个枚举实例是同一枚举类型,防止了不兼容的比较。 泛型递归模式不仅用于接口,还可以用于类和方法。它能提供强大的类型安全保证,使得代码更加灵活。例如,如果...
在"SE_JAVA_EXP_E046"中,可能涉及了如何正确地抛出和捕获异常,以及如何编写健壮的代码来防止程序因异常而中断。 多线程是Java的一个强项,允许程序同时执行多个任务。学生可能需要学习如何创建和管理线程,理解...
8. **Chapter 13**: 可能涵盖泛型和枚举。泛型提供了编译时类型安全,枚举则用于定义固定的常量集。学习者将学习如何使用泛型来设计更灵活的类和方法,以及如何定义和使用枚举类型。 9. **Chapter 8**: 可能讲解了...
这段代码定义了一个泛型方法`getEnum`,该方法接受一个枚举类和一个字符串参数,返回该枚举类中具有指定名称的枚举常量。 综上所述,Java中的枚举类型提供了一种强大而灵活的方式来定义一组固定的常量,并且可以...
源代码E部分包含了与书中各章节对应的示例程序,方便读者实践和学习。 1. 类与对象:C#的核心是面向对象编程,书中可能涵盖了类的定义、构造函数、析构函数、封装、继承、多态等概念。E001到E008可能对应了这些基础...
例如,ArrayList<E>和HashMap,V>中的E、K和V就是泛型类型参数,分别代表元素类型、键类型和值类型。使用泛型集合可以确保插入的数据类型符合预期,且在编译阶段就能捕获类型错误。 Collections是Java提供的一个工具...
泛型可以在类、接口和方法上使用,通过使用泛型,我们可以限制集合中存储的数据类型。泛型的通配符如?、? extends E和? super E则提供了更灵活的类型约束。需要注意的是,泛型在编译后会被擦除,因此在运行时不会...
书中深入分析了泛型的使用,包括定义泛型类、接口和方法,以及泛型约束。 6. 面向组件编程:书中探讨了.NET框架如何支持组件化开发,如Assembly、命名空间、程序集版本控制和强命名,以及如何使用配置文件来管理...
事件处理程序方法应遵循标准的参数模式,即`sender`参数为`System.Object`类型,`e`参数为`System.EventArgs`类型,这有助于保持代码的一致性和可读性。 这些代码分析规则有助于编写出更高效、可维护和符合设计...
JDK 1.6引入了许多新的特性和改进,例如泛型的增强、枚举类型、并发工具类等,为开发带来了更多的可能性。 【m2e核心功能】 1. **依赖管理**:m2e自动处理Maven项目的依赖关系,下载必要的库文件,避免手动配置。 ...
描述中的“纯 Swift 实现”指出这个封装完全使用 Swift 语言编写,没有依赖 Objective-C 框架或其他第三方库,这使得它对 Swift 开发者更加友好,同时也能充分利用 Swift 的语言特性,如枚举、泛型和可选类型等。...
- `compareTo(E o)`:比较枚举值的顺序。 - `name()`:返回枚举常量的名称。 - `ordinal()`:返回枚举常量的索引位置,通常从0开始。 - `toString()`:返回枚举常量的字符串表示。 - `valueOf(Class<T> type, ...