我正在为JVM中的所有操作码编写一个枚举。它不完整,到目前为止看起来像这样:
public enum Opcode {
NOP(),
ACONST_NULL(),
ICONST_M1(),
ICONST_0(),
ICONST_1(),
// a zillion more of these
JSR_W();
private Opcode(Class<? extends Argument> args...) {
}
}
构造声明的行上有一个编译错误:
')'预期
发生了什么事?
答案 0 :(得分:10)
...
表示法的参数类型不在参数名称上,如此
private Opcode(Class<? extends Argument>... args) {
}
为了彻底性,方法的参数列表具有以下形式的Java Language Specification states
FormalParameterList:
LastFormalParameter
FormalParameters , LastFormalParameter
其中LastFormatParameter
的格式为
LastFormalParameter:
VariableModifiersopt Type... VariableDeclaratorId
FormalParameter
...
位于参数类型声明之后。