小白的问题,请来看一下~~~

llm0528 llm0528 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码没难度,就是几个小问题不是很明白,请大家帮忙解释下。
import java.util.*;

public class Enums {
private static Random rand = new Random(47);
public static <T extends Enum<T>> T random(Class<T> ec) {
return random(ec.getEnumConstants());
}
public static <T> T random(T[] values) {
return values[rand.nextInt(values.length)];
}
}


import net.mindview.util.*;

enum SecurityCategory {
STOCK(Security.Stock.class), BOND(Security.Bond.class);
Security[] values;
SecurityCategory(Class<? extends Security> kind) { //问题1:Enum的构造函数,是在什么时候被自动调用的?是在用 values() 读取元素时吗?
values = kind.getEnumConstants();
}
interface Security {
enum Stock implements Security { SHORT, LONG, MARGIN } //问题2:在接口中定义 Enum 然后再实现这个接口,这么做有什么意义?
enum Bond implements Security { MUNICIPAL, JUNK }
}
public Security randomSelection() {
return Enums.random(values);
}
public static void main(String[] args) {
for(int i = 0; i < 10; i++) {
SecurityCategory category =
Enums.random(SecurityCategory.class);
System.out.println(category + ": " +
category.randomSelection());
}
}
}
...全文
评论 10
收藏 已收藏
分享
返回顶部
llm0528
Java SE 62,620 成员 307,251 内容