',' 或 ')' 预期 - 枚举中的长数字
',' or ')' expected - long numbers in Enum
为什么这段代码不起作用?我有一个很长的数字,低于 2^64,但它不起作用。我的 IntelliJ 说缺少“,”或“)”。在我的 Netbeans 中它确实有效但在 Intellij 中不起作用 - 在 Netbeans 中如果我从 Byte - Gigabyte 中删除 L 它有效,因为它们低于 2^32 限制并且在没有 L 的情况下工作,在 IntelliJ 中它给我一个编译器错误(见图)如果我在这些 2^32(字节 - GB)上有 L 或没有。重新启动 IntelliJ 没有帮助。
public enum Type {
BYTE (1L), KILOBYTE (1024L), MEGABYTE(1048576L), GIGABYTE(1073741824L), TERABYTES(1099511627776L), PETABYTE(1125899906842624L);
private final long size;
private Type(long size){
this.size=size;
}
public long getSize() {
return size;
}
@Override
public String toString() {
return "Type{" +
"size=" + size +
'}';
}
}
PETABYTE 大小声明后有一个隐藏的 Unicode 字符 Unicode U+202C,可能是 copy/paste 的把戏。使用此在线工具查看它:
https://www.soscisurvey.de/tools/view-chars.php
在那里复制你的代码片段,你就会看到它。
为什么这段代码不起作用?我有一个很长的数字,低于 2^64,但它不起作用。我的 IntelliJ 说缺少“,”或“)”。在我的 Netbeans 中它确实有效但在 Intellij 中不起作用 - 在 Netbeans 中如果我从 Byte - Gigabyte 中删除 L 它有效,因为它们低于 2^32 限制并且在没有 L 的情况下工作,在 IntelliJ 中它给我一个编译器错误(见图)如果我在这些 2^32(字节 - GB)上有 L 或没有。重新启动 IntelliJ 没有帮助。
public enum Type {
BYTE (1L), KILOBYTE (1024L), MEGABYTE(1048576L), GIGABYTE(1073741824L), TERABYTES(1099511627776L), PETABYTE(1125899906842624L);
private final long size;
private Type(long size){
this.size=size;
}
public long getSize() {
return size;
}
@Override
public String toString() {
return "Type{" +
"size=" + size +
'}';
}
}
PETABYTE 大小声明后有一个隐藏的 Unicode 字符 Unicode U+202C,可能是 copy/paste 的把戏。使用此在线工具查看它: https://www.soscisurvey.de/tools/view-chars.php
在那里复制你的代码片段,你就会看到它。