ожидается ',' или ')' - длинные числа в Enum - PullRequest
0 голосов
/ 24 января 2020

Почему этот код не работает? У меня есть long и число, которое ниже 2 ^ 64, но оно не работает. Мой IntelliJ говорит, что отсутствует «,» или «)». В моих Netbeans это работает, но не в Intellij - В Netbeans это работает, если я удаляю L из байта - гигабайта, потому что они ниже 2 ^ 32 предела и работают без L, В IntelliJ это дает мне ошибку компилятора (см. Рисунок) если у меня есть L на этих 2 ^ 32 (байт - ГБ) или нет. Перезапуск 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 +
                '}';
    }
}

Here is where the error occours, i have no clue why

1 Ответ

1 голос
/ 24 января 2020

Существует скрытый символ Unicode Unicode U + 202 C после объявления размера PETABYTE, возможно, уловка копирования / вставки. Используйте этот онлайн-инструмент, чтобы увидеть его: https://www.soscisurvey.de/tools/view-chars.php

Скопируйте туда фрагмент кода, и вы увидите его.

...