Страницы

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

четверг, 23 января 2020 г.

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

#java


Задаю вопрос исключительно ради "научного" интереса. Используется эта константа для
компилятора? Или её можно использовать в коде? Если да, то зачем? 

Для ясности о чём идёт речь, полное содержимое файла 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() {}
}

    


Ответы

Ответ 1



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

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

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