Почему нельзя использовать Void в качестве типа возврата для основного метода

Итак, я хотел проверить Void типа тогда я написал эту простую программу:

package ehsan;

public class NumTest {
    public static Void main(String[] args) {
        System.out.println("Hello, World!");
        return null; /* The compiler forced me to do so. I just can't realize what is the point in returning in Void type!? */
    }
}

Итак, теперь, когда я хочу скомпилировать, компилятор жалуется:

main method must return a value of type void

Почему компилятор не видит, что я ничего не возвращаю и использую Void?

4 ответа

Решение

Вы должны использовать void (в нижнем регистре v) не Void объект. Void объект не будет получать автобокс, как, например, int/Integerсм. Спецификацию языка Java для списка объектов автобоксирования.

Void не является оберткой для void, это просто объект с очень похожим именем, поэтому его можно использовать в местах, где вам нужно указать тип возвращаемого значения (например, например, Callable<T>), это просто для целей документирования и для обхода некоторых типов возвращаемых классов.

Второй вариант использования находится в отражении (когда вы хотите проверить возвращаемое значение void функция, вы получите Void.TYPE).

Правильная линия:

public static void main(String[] args)

Void - это тип класса, поэтому компилятор ожидает, что вы вернете ему значение. Вы должны использоватьvoid с строчной буквы.

Причина вашей ошибки:

Метод main должен возвращать значение типа void

из-за правила, что метод main всегда должен возвращать void - это ключевое слово Java, а не тип класса.

Вы должны использовать void вместо Void

Как это:

public static void main(String[] args)

Ошибка печати.

это void не Void

Случилось так, что Void - это класс в Java. Из документов

Класс Void - это нереализуемый класс-заполнитель для хранения ссылки на объект Class, представляющий ключевое слово Java void.

Другие вопросы по тегам