public enum Test {
public static final int C1 = 5;
}
public enum Test {
;
public static final int C1 = 5;
}
如果有人理解java编译器为什么这么做,请解释一下。
正如另一个答案所指出的,JLS的相关部分是8.9,具体来说是8.9.1,其中规定:
枚举声明的正文可以包含枚举常量。枚举常数定义枚举类型的实例。
枚举体:
{[EnumConstantList][,][EnumBodyDeclarations]}
这和你的问题有什么关系?这意味着有效的枚举声明如下(下面是一些语法符号,请原谅):
public enum Test {
}
public enum Test {
[EnumConstantList]
}
public enum Test {
[EnumConstantList] ,
}
public enum Test {
,
}
public enum Test {
[EnumBodyDeclarations]
}
public enum Test {
, [EnumBodyDeclarations]
}
public enum Test {
[EnumConstantList] [EnumBodyDeclarations]
}
public enum Test {
[EnumConstantList] , [EnumBodyDeclarations]
}
[EnumConstantList]
并不那么有趣,因为这是人们所期望的:
枚举常数{,枚举常数}
它包含非可选分号,后跟有效的ClassBodyDeclaration
。
呸。
这也意味着以下是有效的枚举声明:
public enum Test {
;
}
public enum Test {
,;
}
public enum Test {
,;
public static final int C1 = 5;
}
public enum Test {
CAT,
}
public enum Test {
CAT;
}
public enum Test {
CAT,;
}
public enum Test {
CAT,;
public static final int C1 = 5;
}
public enum Test {
CAT;
public static final int C1 = 5;
}
public enum Test {
CAT,
public static final int C1 = 5;
}
所以我更新了代码,添加了行所做的是将主线程置于Hibernate状态一段时间,因此jvm可以获得一些时间来创建一个新线程。我正在得到我的预期输出
我发现了Java并发的奇怪行为。请参阅下面的下一段代码: 在我看来,这段代码应该挂起并永远等待,但是在控制台中的next out没有任何问题地完成了代码: 我试图找到一些关于如果线程死了通知锁的信息,但缺乏。我也没有在Java规范中找到任何信息。 但是如果我试图锁定其他对象(而不是thread对象),就会像我预期的那样工作得很好。
下面的代码是一个小示例,可以轻松重现问题。所以我有 String 类型的变量,它设置了默认值。我有3种方法: getter 塞特 将字符串转换为布尔值的方便方法 自省不会将getter作为readMethod返回,将setter作为WriteMethod返回。相反,它将isTest()方法作为readMethod返回。setter为空。 从文档中我了解到,如果类型是boolean,那么" is "
我在做Maven项目。我用log4j做了一个日志。但它在给定的文件中显示了一些starnge日志。我试图理解,为什么会出现这种奇怪的日志,但我不明白。请帮助我,为什么这些不需要的行会进入日志文件。 请帮我把这个拿开。 log.properties 我通过阅读这个链接创建了这个文件。 代码是 日志txt-(log.txt的一些起始行)
我有以下代码来解析一个JSON文件: 要处理以下JSON文件: 如果我执行此代码,我将收到以下错误: 所以我开始一步一步地调试应用程序,看看part processing()中的哪个代码部分抛出了这个异常。令人惊讶的是,那里的所有代码都正常执行:没有抛出异常,也没有返回结果I except。 更让我惊讶的是,当我稍微改变第一种方法的代码时,它可以在不产生异常的情况下工作。 我不知道println方
我有以下代码: 假设我现在将电脑的时区设置为太平洋时间(PDT为UTC-7),则打印 2012年6月29日星期五08:15:00太平洋标准时间 PDT不是比IST(印度标准时间)晚12.5小时吗?这个问题在任何其他时区都不会发生-我尝试了UTC、PKT、MMT等,而不是日期字符串中的IST。Java中有两个IST吗? 注意:实际代码中的日期字符串来自外部源,因此我不能使用GMT偏移量或任何其他时区