Страницы

Поиск по вопросам

суббота, 16 марта 2019 г.

Зачем нужна константа TYPE внутри классов, определённых в пакете java.lang?

Задаю вопрос исключительно ради "научного" интереса. Используется эта константа для компилятора? Или её можно использовать в коде? Если да, то зачем?
Для ясности о чём идёт речь, полное содержимое файла Void.java:
package java.lang;
/** * The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword * void. * * @author unascribed * @since JDK1.1 */ public final class Void {
/** * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */
@SuppressWarnings("unchecked") public static final Class TYPE = (Class) Class.getPrimitiveClass("void");
/* * The Void class cannot be instantiated. */ private Void() {} }


Ответ

Например для того, чтобы убедиться, что найденный вами через рефлекшен метод ничего не возвращает. То есть:
if (Void.TYPE == m.getReturnType())

Комментариев нет:

Отправить комментарий