我正在收到RuntimeException
枚举类型可能无法实例化
我不知道为什么 我想要的是用整数值标识年份,例如我有9,所以其他方法的年份是2006。代码:
public class P21Make {
enum Catalog {
year2005(9),year2006(12),year2007(15),year2008(18),
year2009(21),year2010(23),year2011(25),year2012(28),
year2013(31),year2014(33),year2015(36),year2016(39),
year2017(42),year2018(45),year2019(48),year2020(51);
private int id;
Catalog(int c){
this.id=c;
}
}
public P21Make() {
Catalog c = new Catalog(9); // The Exception
}
}
您不能像这样实例化枚举。您有2种可能性
1.Catalog c = Catalog.year2005;
2.通过添加可以根据code(integer value)返回枚举的方法,对枚举进行以下更改。例如
enum Catalog {
year2005(9),year2006(12),year2007(15),year2008(18),
year2009(21),year2010(23),year2011(25),year2012(28),
year2013(31),year2014(33),year2015(36),year2016(39),
year2017(42),year2018(45),year2019(48),year2020(51);
private int id;
Catalog(int c){
this.id=c;
}
static Map<Integer, Catalog> map = new HashMap<>();
static {
for (Catalog catalog : Catalog.values()) {
map.put(catalog.id, catalog);
}
}
public static Catalog getByCode(int code) {
return map.get(code);
}
}
然后像这样分配
Catalog c = Catalog.getByCode(9);
问题内容: 考虑我有以下枚举类, 在下面的课程中,我试图测试枚举类, 在这里,我指定然后将其作为参数传递给方法。相反,如果我们要实例化枚举类并将其作为参数传递,我们需要做什么? 问题答案: 在这里,我需要指定Sample.READ以将其作为参数传递。相反,如果我们要实例化枚举类并将其作为参数传递,我们需要做什么? “实例化枚举类”甚至意味着什么?枚举的要点是有一组 固定 的值-您以后不能创建更多值
本文向大家介绍Java枚举类用法实例,包括了Java枚举类用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java枚举类用法。分享给大家供大家参考。具体如下: 希望本文所述对大家的java程序设计有所帮助。
本文向大家介绍C#枚举类型与结构类型实例解析,包括了C#枚举类型与结构类型实例解析的使用技巧和注意事项,需要的朋友参考一下 本文以C#实例讲解了枚举类型与结构类型的用法,程序主要是通过个人电话本演示枚举类型与结构类型的用法,具体代码如下所示:
枚举类型(也可以称为“枚举器”)由一组具有独立标识符(名称)的整数类型常量构成,在 C# 中枚举类型不仅可以在类或结构体的内部声明,也可以在类或结构体的外部声明,默认情况下枚举类型中成员的默认值是从 0 开始的,然后逐一递增。 在 C# 中可以使用 enum 关键字来声明枚举类型,语法格式如下所示: enum enum_name{ enumeration list; } 其中,enum_n
枚举是为了让程序可读性更好,比如用来描述用户的角色,普通的会员、付费的会员等,同时也限定了用户角色的种类,保证安全性,不会出现上帝角色这种乱入的东西。 枚举的类别与写法 默认值从0开始,依次递增,这个你应该还记得。 普通的枚举 let str = 'something' enum test{ test01, } enum FileAccess { None, Read
上一章我们谈到了从真实世界的值(如扑克牌中的大小和花色)到程序世界内部表示(如整数或字符串)的映射。虽然我们实现了牌面大小和整型数、花色和整型数之间的映射,但必须指出,映射本身并没有成为程序的一部分。 实际上,C++提供了一种称为“枚举类型”的特性使以下两点成为可能,一是将映射作为程序的一部分,一是定义了组成映射的值的集合。比如,牌的花色(Suit)和大小(Rank)可以以枚举的形式定义: enu