package enums;
import java.util.Random;
//获取枚举中随机属性
public class Enums {
public static <T extends Enum<T>> T random(Class<T> ec){
return random(ec.getEnumConstants());
}
public static <T> T random(T[] values){
//每次调用new一个新random,标识要不一样,要不然每次运行的结果都一样。
return values[new Random(System.nanoTime()).nextInt(values.length)];
}
}
package enums;
/**
*/
public enum TestEnum {
STORK(Security.Stock.class),
BOND(Security.Bond.class);
interface Security{
enum Stock implements Security{SHORT,LONG}
enum Bond implements Security{JUNK,CCTV}
}
Security[] values;
TestEnum(Class<? extends Security> kind){
values = kind.getEnumConstants();
}
public Security randomSelection(){
return Enums.random(values);
}
public static void main(String[] args){
for (int i = 0; i < 5; i++) {
TestEnum testEnum = Enums.random(TestEnum.class);
System.out.println(testEnum+":"+testEnum.randomSelection());
}
}
}
分享到:
相关推荐
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
在枚举内部,可以通过`Enum<E extends Enum<E>>`的泛型方法`getDeclaringClass()`获取枚举常量所属的枚举类,以及`name()`和`ordinal()`方法获取常量的名称和在枚举中的位置。 总结来说,Java枚举类型提供了一种...
### Java枚举类型详解 #### 一、引言 在Java编程语言中,枚举(Enum)作为一种重要的数据类型,在程序设计中扮演着不可或缺的角色。本文将深入探讨Java枚举类型的特性和用法,并通过具体实例说明其优势所在。枚举...
java枚举结果类、根据状态值获取枚举值 Controller: /** 模块类型枚举 */ model.addAttribute("mType", ModuleTypeEnum.ModuleTypeShow()); ftl: value="${mType.key}:${mType.value}” </#list>
在Java枚举中,每个状态可以是一个枚举常量,而状态间的转换可以通过定义方法来实现。 例如,假设我们有一个简单的订单处理系统,有"新建"、"处理中"和"完成"三个状态,可以这样定义枚举: ```java public enum ...
枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用。以下是关于Java枚举类型的详细解释和相关知识点: 1. 定义枚举: 在Java中,枚举通过关键字`enum`来定义。例如,创建...
通过上述介绍,我们了解到Java枚举类的多种用法,包括声明、初始化、方法定义、构造器、转换为集合、遍历、比较、在switch语句中的应用以及序列化等。枚举类不仅提高了代码的可读性和安全性,还简化了常量管理,使得...
例如,我们可以在枚举中定义一个返回枚举名称的方法: ```java public enum Color { RED, GREEN, BLUE; public String getName() { return name(); } } ``` 然后,`Color.RED.getName()`将返回"RED"。 四、枚举...
在本文中,我们将深入探讨Java枚举的定义、使用方法以及它如何改善传统使用`static final`常量的模式。 首先,让我们看看传统的`static final`常量表示枚举的方式。例如,清单1展示了如何使用`public static final`...
本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...
枚举中的每个实例都是唯一的,且在程序启动时自动初始化,无需担心多线程环境下的安全问题。例如,下面的Singleton枚举类: ```java enum Singleton { INSTANCE; public void doSomething() { // ... } } ...
Java枚举是编程语言Java中的一个特色特性,它在类、接口和变量的定义中扮演着特殊的角色。枚举在Java中被用作一种数据类型,用于定义一组固定的常量,这些常量可以代表特定的值或状态。通过枚举,我们可以确保变量...
### Java 枚举类型详解 #### 一、引言 ...通过以上的介绍,我们可以看到Java枚举类型不仅提供了类型安全的保障,还为开发者带来了极大的灵活性。合理地使用枚举类型,可以显著提高代码的质量和可维护性。
一个关于JAVA枚举类型的MHT文件,包含JAVA枚举类型的用法,以及JDK版本的问题。
- **枚举元素的实例性质**:枚举中的每个元素实际上是一个对象实例,这意味着可以为这些元素添加额外的属性和行为。例如,为不同的季节分配特定的颜色或温度范围。 - **枚举类的可扩展性**:除了定义枚举元素外,...
枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-master"显然是一个用于演示如何通过反射来操作枚举类的示例。 首先,让我们理解枚举类的基本概念。枚举类在Java中用于定义...
在 Java 中,枚举类是一种特殊的类,它可以拥有自己的属性。枚举类的属性可以是 public 的,也可以是 private 的,但是一般情况下,我们将枚举类的属性设置为 private final,以确保枚举类的安全和简洁。 在枚举类...
这篇博客将深入探讨Java枚举的特性和使用方法,包括`EnumSet`和`EnumMap`这两个与枚举相关的数据结构。 首先,枚举定义的基本语法是`public enum EnumName {constant1, constant2, ...}`。每个枚举常量都是`...
本篇文章将深入探讨Java枚举的使用及其背后的原理。 一、枚举的定义与使用 1. 基本用法: 在Java中,枚举可以通过`enum`关键字来创建。例如,我们可以定义一个表示一周七天的枚举类型: ```java public enum ...
本文详尽地论述了Java枚举与设计模式的关系