JAVA如何用枚举类实现泛型工厂
时间: 2024-10-21 08:06:37 浏览: 36
在Java中,枚举类可以结合泛型来实现一种简洁的工厂模式,通常用于创建一组相关的、预定义的对象。这种设计称为“枚举工厂”或“枚举生成器”。下面是一个简单的例子:
```java
public enum ColorFactory {
RED(Color.RED),
GREEN(Color.GREEN),
BLUE(Color.BLUE);
private final Color color;
ColorFactory(Color color) {
this.color = color;
}
public static <T extends Enum<T>> T create(Class<T> clazz) {
return values()[clazz.getFieldValues().indexOf(clazz.getEnumConstants()[0])];
}
}
// 定义一个Color枚举
enum Color {
RED, GREEN, BLUE;
}
// 使用工厂方法创建Color实例
Color createdColor = ColorFactory.create(Color.class);
```
在这个例子中,`ColorFactory`是一个枚举,每个枚举常量对应一个颜色。通过静态方法`create()`,我们可以传入一个`Class`类型的参数(这里是`Color.class`),它会返回相应枚举值所对应的实例。这里利用了Java泛型和反射技术。
阅读全文
相关推荐



















