Сегодня, когда я проверял исходный код, я обнаружил класс java.lang.void. Какова функция этого?
Проверьте его сначала через исходный код
Package java.lang;/** * Класс {@code void} - это неустойчивый класс заполнителей для сохранения * ссылки на {@code class} объекта, представляющего ключевое слово Java * void. * * @author unccounted * @since jdk1.1 * /public finalclass void { /** * a {@code class} объект, представляющий псевдоип, соответствующий * ключевым словам {@code void}. */ @Suppresswarnings ("unchecked") public static final class <void> type = (class <void>) class.getPrimitiveClass ("void"); / * * Класс void не может быть создан. */ private void () {}}Из исходного кода можно найти, что этот класс является окончательным, не может быть унаследован, и конструкция является частной и не может быть новой.
Так какова функция этой категории?
Вот исходный код класса java.lang.integer First
Мы все знаем, что класс обертки int - это java.lang.integer
Из этого мы видим, что java.lang.integer - это класс обертки Int.
Точно так же, благодаря следующему исходному коду java.lang.void, мы видим, что java.lang.void - это класс обертки для ключевого слова Void.
Public Static Final Class <void> type = (class <void>) class.getPrimitiveClass ("void");Пустое использование
Класс void-это непреодолимый класс заполнителей. Если метод возвращает тип void, то метод может вернуть только нулевый тип.
Примеры следующие:
public void test () {return null;}Используйте сценарий 1:
Future <void> f = pool.submit (new Callable () {@Override public void call () бросает исключение {...... return null;}});Например, используя разбираемый интерфейс, интерфейс должен вернуть значение, но нет данных, которые будут возвращаться после фактического выполнения. В настоящее время вы можете использовать тип void в качестве типа возврата.
Используйте сценарий 2:
Отражайте все методы с возвратной стоимостью void.
Общественный тест класса {public void hello () {} public static void main (string args []) {for (метод метода: test.class.getmethods ()) {if (method.getReturntype (). equals (void.type)) {System.out.println (method.getName ()); }}}}Результаты исполнения:
Mainhellowaiwaitwaitnotifynotifyall
PS: следующее вводит сравнение и использование java.lang.void and void
Ключевое слово void означает, что функция не возвращает результат и является ключевым словом в Java.
java.lang.void - это тип. Например, назначьте значение NULL к void -ссылке.
Void nil = null;
Через код класса void мы видим, что тип void не может быть унаследован или создан.
public finalClass void { /** * a {@code class} объект, представляющий псевдотип, соответствующий * ключевым словам {@code void}. */ @Suppresswarnings ("unchecked") public static final class <void> type = (class <void>) class.getPrimitiveClass ("void"); / * * Класс void не может быть создан. */ private void () {}}Void, как результат возврата функции указывает на то, что функция возвращает NULL (кроме как NULL не может вернуть другие типы).
Void function (int a, int b) {// сделай что -нибудь возвращение нуля; }Прежде чем появилась дженерики, пустота обычно использовалась в отражении. Например, следующий код печатает имя метода vatury Type void.
открытый тест класса {public void print (String v) {} public static void main (string args []) {for (метод метода: test.class.getmethods ()) {if (method.getReturntype (). equals (void.type)) {system.out.println (method.getName ()); }}}} После появления генериков в некоторых сценариях будет использоваться тип void. Например, Future<T> используется для сохранения результатов. Метод получения Future's вернет результат (тип T).
Но что, если операция не вернет значение? В этом случае это может быть представлено Future<Void> . Когда результат рассчитывается после вызова GET, он вернется NULL после возвращения.
Кроме того, void также используется в бесценных картах. Например, Map<T,Void> , поэтому MAP будет иметь ту же функцию, что и Set<T> .
Поэтому, когда вы используете Generics, функции не нужно возвращать результат, или объект не нуждается в значении. Это может быть представлено java.lang.void.
Суммировать
Выше приведено подробное объяснение анализа класса и использования Java.lang.void, введенного вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!