草庐IT

java - 在枚举类型上实现 `next` 和 `previous` 的最佳方法是什么?

假设我有一个枚举:enumE{A,B,C;}如thisanswer所示由lucasmo,枚举值按照初始化的顺序存储在一个静态数组中,稍后您可以使用E.values()检索(克隆)该数组。现在假设我想实现E#getNext和E#getPrevious以使以下所有表达式的计算结果为true:E.A.getNext()==E.BE.B.getNext()==E.CE.C.getNext()==E.AE.A.getPrevious()==E.CE.B.getPrevious()==E.AE.C.getPrevious()==E.B我目前对getNext的实现如下:publicEgetNext(

java - 在枚举类型上实现 `next` 和 `previous` 的最佳方法是什么?

假设我有一个枚举:enumE{A,B,C;}如thisanswer所示由lucasmo,枚举值按照初始化的顺序存储在一个静态数组中,稍后您可以使用E.values()检索(克隆)该数组。现在假设我想实现E#getNext和E#getPrevious以使以下所有表达式的计算结果为true:E.A.getNext()==E.BE.B.getNext()==E.CE.C.getNext()==E.AE.A.getPrevious()==E.CE.B.getPrevious()==E.AE.C.getPrevious()==E.B我目前对getNext的实现如下:publicEgetNext(

java - 私有(private)枚举构造函数

这个enum的构造函数是私有(private)的。这意味着什么?publicenumSLocale{EN_US(Locale.US,"www.abc.com","www.edc.com","www.vvv.com","www.earn.com");Listdomains;Localeloc;IMapmap;privateSLocale(Localeloc,String...domains){this.domains=Arrays.asList(domains);this.loc=loc;this.siteMap=Factory.getMap(loc);}publicListgetDom

java - 私有(private)枚举构造函数

这个enum的构造函数是私有(private)的。这意味着什么?publicenumSLocale{EN_US(Locale.US,"www.abc.com","www.edc.com","www.vvv.com","www.earn.com");Listdomains;Localeloc;IMapmap;privateSLocale(Localeloc,String...domains){this.domains=Arrays.asList(domains);this.loc=loc;this.siteMap=Factory.getMap(loc);}publicListgetDom

java - 如何定义枚举项的属性

我已阅读问题DifferenceofEnumbetweenjavaandC++?但我还是一头雾水。我希望以下返回相关的字符串:publicenumChecker{EMPTY("Empty"),RED("Red"),YELLOW("Yellow");}根据我的阅读,这应该是可能的。只是希望您对如何实现它有所了解。 最佳答案 简答您需要一个构造函数、一个字段和一个getter。构造函数枚举类型可以有构造函数,前提是它们的访问级别是私有(private)的或默认的(包私有(private))。您不能直接调用这些构造函数,除非在枚举声明本身

java - 如何定义枚举项的属性

我已阅读问题DifferenceofEnumbetweenjavaandC++?但我还是一头雾水。我希望以下返回相关的字符串:publicenumChecker{EMPTY("Empty"),RED("Red"),YELLOW("Yellow");}根据我的阅读,这应该是可能的。只是希望您对如何实现它有所了解。 最佳答案 简答您需要一个构造函数、一个字段和一个getter。构造函数枚举类型可以有构造函数,前提是它们的访问级别是私有(private)的或默认的(包私有(private))。您不能直接调用这些构造函数,除非在枚举声明本身

java - 遍历 hastable 键的枚举会引发 NoSuchElementException 错误

我正在尝试使用枚举从哈希表中迭代一个键列表,但是我在列表中的最后一个键处不断收到NoSuchElementException?Hashtablevars=newHashtable();vars.put("POSTCODE","TU13ZU");vars.put("EMAIL","job.blogs@lumesse.com");vars.put("DOB","02Mar1983");Enumeratione=vars.keys();while(e.hasMoreElements()){System.out.println(e.nextElement());Stringparam=(Str

java - 遍历 hastable 键的枚举会引发 NoSuchElementException 错误

我正在尝试使用枚举从哈希表中迭代一个键列表,但是我在列表中的最后一个键处不断收到NoSuchElementException?Hashtablevars=newHashtable();vars.put("POSTCODE","TU13ZU");vars.put("EMAIL","job.blogs@lumesse.com");vars.put("DOB","02Mar1983");Enumeratione=vars.keys();while(e.hasMoreElements()){System.out.println(e.nextElement());Stringparam=(Str

java - 我可以在 Java 运行时添加和删除枚举元素吗

可以在运行时从Java中的枚举中添加和删除元素吗?例如,我可以从文件中读取枚举的标签和构造函数参数吗?@saua,这只是一个是否真的可以出于兴趣而做的问题。我希望有一些巧妙的方法来改变正在运行的字节码,也许使用BCEL或者其他的东西。我也跟进了thisquestion因为我意识到我不完全确定什么时候应该使用枚举。如果我希望能够在运行时安全地更改内容,我非常相信正确的答案是使用确保唯一性的集合而不是枚举。 最佳答案 不,枚举应该是一个完整的静态枚举。在编译时,您可能希望从另一个源文件生成枚举.java文件。你甚至可以像这样创建一个.c

java - 我可以在 Java 运行时添加和删除枚举元素吗

可以在运行时从Java中的枚举中添加和删除元素吗?例如,我可以从文件中读取枚举的标签和构造函数参数吗?@saua,这只是一个是否真的可以出于兴趣而做的问题。我希望有一些巧妙的方法来改变正在运行的字节码,也许使用BCEL或者其他的东西。我也跟进了thisquestion因为我意识到我不完全确定什么时候应该使用枚举。如果我希望能够在运行时安全地更改内容,我非常相信正确的答案是使用确保唯一性的集合而不是枚举。 最佳答案 不,枚举应该是一个完整的静态枚举。在编译时,您可能希望从另一个源文件生成枚举.java文件。你甚至可以像这样创建一个.c