加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在java枚举中你可以拥有的成员数限制是多少?

发布时间:2020-12-14 23:44:52 所属栏目:Java 来源:网络整理
导读:假设你在这样的 java中有一个假设的枚举(纯粹用于演示目的,这不是我非常期待使用的代码): enum Example{ FIRST,SECOND,THIRD,... LAST;} 在编译器停止之前,你可以在枚举中拥有的最大成员数是多少? 其次,当您的代码引用枚举时,运行时是否有任何性能差异,例
假设你在这样的 java中有一个假设的枚举(纯粹用于演示目的,这不是我非常期待使用的代码):
enum Example{
    FIRST,SECOND,THIRD,...
    LAST;
}

在编译器停止之前,你可以在枚举中拥有的最大成员数是多少?

其次,当您的代码引用枚举时,运行时是否有任何性能差异,例如10个成员而不是100或1,000(除了存储大型类所需的明显内存开销)?

解决方法

找出这类问题答案的最佳方法是尝试一下.从一个小的Python脚本开始生成Java文件:
n = input()
print "class A{public static void main(String[] a){}enum B{"
print ','.join("C%d" % x for x in range(n))
print '}}'

现在试试1,10,100,1000 …工作正常,然后BAM:

A.java:2:代码太大了
C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,…

好像我达到某种内部限制.不确定它是否是文档限制,如果它取决于我的编译器的特定版本,或者它是否依赖于系统限制.但对我来说,限制大约是3000,并且似乎与源代码大小有关.也许你可以编写自己的编译器来绕过这个限制.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读