Elettracompany.com

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java void type

Что означает «public static void» в Java?

112 David [2010-03-06 00:27:00]

Что означает public static void в Java?

Я участвую в процессе обучения. Во всех примерах из книги, в которой я работаю из public static void , появляется перед любым методом, который используется или создается. Что это значит?

9 ответов

179 Решение Mark Byers [2010-03-06 00:29:00]

Это три совершенно разные вещи:

public означает, что метод видим и может быть вызван из других объектов других типов. Другие альтернативы являются частными, защищенными, пакетными и частными. Подробнее см. здесь.

static означает, что метод связан с классом, а не с конкретным экземпляром (объектом) этого класса. Это означает, что вы можете вызвать статический метод, не создавая объект класса.

void означает, что метод не имеет возвращаемого значения. Если метод возвратил int , вы должны написать int вместо void .

Комбинация всех трех из них наиболее часто встречается в методе main , который будет включать большинство учебных пособий.

Три слова имеют ортогональные значения.

public означает, что метод будет виден из классов в других пакетах.

static означает, что метод не привязан к определенному экземпляру, и он не имеет » this «. Это более или менее функция.

void — тип возвращаемого значения. Это означает, что «этот метод ничего не возвращает».

19 utsav [2012-09-04 21:02:00]

Ключевое слово public — это спецификатор доступа, который позволяет программисту контролировать видимость членов класса. Когда член класса предшествует публике, то к этому члену может обращаться код вне класса, в котором он объявлен. (Противоположность public является частной, что не позволяет члену использоваться кодом, определенным вне его класса.)

В этом случае main( ) должен быть объявлен как открытый, так как он должен вызываться кодом вне его класса при запуске программы.

Ключевое слово static позволяет вызывать main( ) без необходимости создания экземпляра конкретного экземпляра класса. Это необходимо, так как main( ) вызывается интерпретатором Java до того, как будут созданы какие-либо объекты.

Ключевое слово void просто сообщает компилятору, что main( ) не возвращает значение. Как вы увидите, методы также могут возвращать значения.

Это означает, что:

  • public — его можно вызывать из любого места
  • static — он не имеет никакого состояния объекта, поэтому вы можете вызвать его без создания экземпляра объекта
  • void — он ничего не возвращает

Вы подумали бы, что отсутствие возврата означает, что он мало что делает, но, возможно, это может спасти вещи в базе данных.

3 Aaron [2010-03-06 00:32:00]

Это означает три вещи.

Первый public означает, что любой другой объект может получить к нему доступ.

static означает, что класс, в котором он находится, не должен быть создан первым, прежде чем функция может быть вызвана.

void означает, что функция не возвращает значение.

Поскольку вы просто учитесь, не беспокойтесь о первых двух слишком много, пока вы не узнаете о классах, а третий не будет иметь большого значения, пока вы не начнете писать функции (кроме основного).

Лучший совет, который я получил, когда участвую в программе, и который я передаю вам, не беспокоится о маленьких деталях, которые вы не понимаете сразу. Получите широкий обзор основных принципов, затем вернитесь и подумайте о деталях. Причина в том, что вы должны использовать некоторые вещи (например, public static void ) в своих первых программах, которые не могут быть действительно хорошо объяснены, не обучая вас сначала кучу других вещей. Итак, на данный момент, просто примите, что так оно и было, и двигайтесь дальше. Вы скоро их поймете.

Public — означает, что класс (программа) доступен для использования любым другим классом.

Static — создает класс. Может также применяться к переменным и методам, делая их методы/переменные класса, а не только локальными для конкретного экземпляра класса.

Void — это означает, что продукт не возвращается, когда класс завершает обработку. Сравните это со вспомогательными классами, которые предоставляют возвращаемое значение основному классу, они работают как функции; они не имеют пробелов в объявлении.

Учитывая типичный класс верхнего уровня. На верхнем уровне могут использоваться только общедоступные модификаторы и модификаторы модификатора, так что вы будете либо публичными, либо вообще не увидите никакого модификатора доступа.

`static« используется, потому что вам может не понадобиться создавать фактический объект на верхнем уровне (но иногда вам захочется, чтобы вы не всегда могли видеть/использовать статику. Существуют и другие причины, по которым вы не включили бы статику тоже, но это типичный на верхнем уровне.)

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

Отказ от ответственности: Я сам новичок, поэтому, если этот ответ ошибочен, пожалуйста, не вешайте меня. Днем я технический рекрутер, а не разработчик; кодирование — мое хобби. Кроме того, я всегда открыт для конструктивной критики и любви к учебе, поэтому, пожалуйста, не стесняйтесь указывать на любые ошибки.

  • public означает, что вы можете получить доступ к классу из любого места класса/объекта или вне пакета или класса
  • static означает константу, в которой блок выражения используется только 1 раз
  • void означает тип возврата

0 mahi [2014-01-08 09:08:00]

static означает, что метод связан с классом, а не с конкретным экземпляром (объектом) этого класса. Это означает, что вы можете вызвать статический метод, не создавая объект класса. Из-за использования ключевого слова static main() — ваш первый метод, который нужно вызвать. static не нужен какой-либо объект для экземпляра. поэтому, main( ) вызывается интерпретатором Java до того, как будут созданы какие-либо объекты.

Что делает void в java?

Тип возвращаемого значения—тип данных значения, возвращаемого методом, или void, если метод не возвращает значение.

Тогда ладно.. Вот мой вопрос:

Приведенный выше код не работает без void.

Что же я упустил? Почему там такая пустота? И он действительно возвращает строку?

6 Ответов

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

Он, конечно, не возвращает строку — посмотрите, нигде нет операторов return. Не совсем понятно, почему вы думаете, что он возвращает строку. Это печать строк на консоль, но это не то же самое, что возврат одного из методов.

Читать еще:  Ошибка d3d9 device как исправить

Причина, по которой код не будет работать без void , заключается в том, что метод System.out.println(String string) ничего не возвращает и просто выводит предоставленные аргументы в стандартный out terminal, который в большинстве случаев является монитором компьютера. Когда метод возвращает «nothing», вы должны указать это, поместив ключевое слово void в его сигнатуру.

Вы можете посмотреть документацию по System.out.println здесь:

Чтобы продолжить обсуждение этого вопроса, println является классическим примером метода, который выполняет вычисления как «side effect.»

Void ничего не возвращает; он сообщает компилятору, что метод не имеет возвращаемого значения.

void означает, что он ничего не возвращает. Он не возвращает строку,вы пишете строку в System.out , но вы не возвращаете ее.

Вы должны указать, что возвращает метод, даже если вы просто говорите, что он ничего не возвращает.

Технически говоря, они могли бы разработать язык таким образом, что если вы не пишете возвращаемый тип, то предполагается, что он ничего не возвращает, однако если вы явно выпишете void , это поможет гарантировать, что отсутствие возвращаемого значения намеренно, а не случайно.

Если тип возвращаемого значения void, ваш метод ничего не возвращает.

Посмотрите еще раз на свой код: в этом методе нет возврата. Вы печатаете на консоль и выходите.

Void: модификатор типа void указывает, что метод main не возвращает никакого значения. Все параметры метода объявляются внутри предшествующей скобки. Здесь String args[ ] объявляет параметр с именем args, который содержит массив объектов класса типа string.

Похожие вопросы:

Результат следующего макроса ясен: #define CRASH() do < *(int *)(uintptr_t)0xbbadbeef = 0; ((void(*)())0)(); >while (false) Мой вопрос в том, что делает линия ((void(*)())0)(); разбить на.

Я столкнулся с этим определением препроцессора, читая исходный код в Windows Research Kernel (WRK) 1.2: #define assert(exp) ((void) 0) Что делает этот код? Почему она определена?

У меня есть строка кода, которая выглядит так: int method(void) const; Но я не уверен, что (void) делает в параметрах, или что делает const. Это также должно быть public ‘get’, и я не уверен, как.

Что делает следующий фрагмент кода java? public static void dontknow(int[] a) < for (int i = 0; i i; j--) < if (a[j-1] >a[j]) < int T =.

Я совсем новичок в dart и задаюсь вопросом, что именно делает эта функция wrapped? Его называют как нормальную функцию с connectUnits(userRepo): void Function( Store store, dynamic.

Что делает размещение void; на линии в C? Компилятор предупреждает об этом, но я не понимаю. Какой смысл в том, чтобы поставить void на такую линию? #include int main() < void;.

Я смотрю на учебник по поиску путей и заметил оператор return внутри метода void (класс PathTest , строка 126): if ((x = map.getWidthInTiles()) || (y >=.

На мой взгляд, то, что делает javac.exe, похоже: . java->черный ящик->.class Я пытаюсь прочитать openJDK,но я не совсем понимаю, как работает черный ящик. Итак, я хочу сначала проанализировать.

Рассмотрим следующий код: float temp ; void setTemperature(float newTemp) < temp = newTemp; >В этом примере используется метод void. Мой фон находится в C (не продвинутый, хотя). В C пустота.

Рассмотрим следующее main() : int main(int argc, char *argv[]) < return (0); >При компиляции с cc -Wall -Wextra генерируются предупреждения, говорящие unused parameter. Когда мне не нужно.

18. Java — Методы

Метод в Java — это комплекс выражений, совокупность которых позволяет выполнить определенную операцию. Так, например, при вызове метода System.out.println(), система выполняет ряд команд для выведения сообщения на консоль.

На данном этапе вы освоите технику создания собственных методов с либо без возвращаемых значений, вызова методов с указанием либо без указания параметров, и выделения методов при разработке программы.

Содержание

Создание метода

Ниже рассмотрен пример, иллюстрирующий синтаксис метода, как в Java создать метод.

Синтаксис

  • public static — модификатор;
  • int — возвращаемый тип;
  • methodName — имя метода;
  • a, b — формальные параметры;
  • int a, int b — перечень параметров.

Определение метода представлено заголовком и телом метода. То же самое мы можем наблюдать в следующем синтаксисе создания метода.

Синтаксис

Приведенный выше синтаксис включает:

  • modifier – определяет тип доступа для метода и возможность его использования.
  • returnType – метод может возвратить значение.
  • nameOfMethod – указывает имя метода. Сигнатура метода включает имя метода и перечень параметров.
  • Parameter List – перечень параметров представлен типом, порядком и количеством параметров метода. Данная опция задается произвольно, в методе может присутствовать нулевой параметр.
  • method body – тело метода определяет метод работы с командами.

Пример

Далее представлен исходный код рассмотренного выше метода, именуемого max(). Данный метод использует два параметра num1 и num2 и возвращает больший из двух.

Вызов метода

Перед использованием метода его необходимо вызвать. Существует два способа для вызова метода в Java, т.е. метод производит возврат значения либо не производит (отсутствует возвращающее значение).

Алгоритм вызова метода достаточно прост. Когда программа производит в Java вызов метода, программное управление передается вызванному методу. Данный вызванный метод затем возвращает управление вызывающему клиенту в двух случаях, если:

  • выполняется оператор возврата;
  • достигнута закрывающая фигурная скобка окончания метода.

Метод возврата типа void производит вызов команды. Рассмотрим пример:

Метод возврата значения может быть проиллюстрирован следующим примером:

Пример ниже демонстрирует способ определения и вызова метода в Java.

Пример

В итоге будет получен следующий результат:

Ключевое слово void

Ключевое слово void в Java позволяет нам создать методы, не производящие возврат значения. В примере, расположенном далее, нами был рассмотрен метод типа void – methodRankPoints. Методы типа void в Java не производят возврат каких-либо значений. Вызов метода типа void выполняется командой, т.е. methodRankPoints(255.7);. Это java-выражение, которое оканчивается точкой с запятой, как показано в примере ниже:

Пример

В итоге будет получен следующий результат:

Передача параметров по значению в Java

При выполнении вызывающего процесса производится в Java передача аргументов. Процедура должна осуществляться согласно порядку, предусмотренному соответствующими параметрами в спецификации метода. Передача параметров может производиться по значению либо по ссылке.

В Java передача параметров по значению обозначает вызов метода с параметром. За счет этого производится передача значения аргумента параметру.

Пример

Следующая программа демонстрирует пример передачи параметра по значению. Значения аргументов остаются неизменными даже после вызова метода.

Получим следующий результат:

Читать еще:  Net hub javad

Перегрузка методов

Перегрузка методов в Java — случай, когда в классе присутствуют два и более метода с одинаковым именем, но различными параметрами. Данный процесс отличен от переопределения методов. При переопределении методов, метод характеризуется аналогичным именем, типом, числом параметров и т.д.

Рассмотрим пример, который был представлен выше при определении минимальных чисел целочисленного типа. Так допустим, мы хотим определить минимальное число двойного типа. В данном случае будет представлена концепция перегрузки для создания двух и более методов с одинаковым именем, но различными параметрами.

Рассмотренный пример поясняет вышесказанное.

Пример

В итоге будет получен следующий результат:

Методы перегрузки делают программу читаемой. Таким образом, представлены два метода с одинаковым именем, но различными параметрами. В результате чего мы получили минимальные int число и число double типа.

Использование аргументов командной строки

В ходе работы программы вам может понадобиться произвести передачу определенной информации. Это может быть сделано в Java за счет передачи аргументов командной строки в main().

В Java аргумент командной строки представляет информацию, которая напрямую следует за именем программы в командной строке при ее выполнении. Получение доступа к аргументам командной строки в java-программе не представляет сложности. Они хранятся в виде строки в массиве строк, переданном в main().

Пример

Программа ниже отображает все вызванные аргументы командной строки.

Попробуйте выполнить данную программу, как показано далее:

В итоге будет получен следующий результат:

Конструктор в Java

В Java конструктор инициализирует объект при его создании. Его имя аналогично имени класса, а синтаксис сходен с синтаксисом метода. Однако, в отличие от последнего, в конструкторе отсутствует возвращаемое значение.

Как правило, конструктор в Java может использоваться для присвоения исходного значения переменных экземпляра, определяемых классом, либо для выполнения каких-либо иных процедур запуска, необходимых для создания полностью сформированного объекта.

Конструкторы присутствуют во всех классах, независимо от их указания, в виду того, что Java автоматически предоставляет конструктор по умолчанию, который инициализирует все переменные членов класса до нуля. Вместе с этим, после того как вы определите собственный конструктор, конструктор по умолчанию больше не будет задействован.

Пример

В примере ниже рассмотрено использование конструктора класса без параметров.

Для инициализации объектов вам необходимо выполнить вызов конструктора согласно следующему примеру.

Параметризованный конструктор

Чаще всего вам может понадобиться конструктор, который принимает один и более параметров. Добавление параметров к конструктору аналогично их добавлению в метод, следует только внести их в круглые скобки после имени конструктора.

Пример

Далее рассмотрен простой пример использования конструктора с параметром.

С целью инициализации объектов вам понадобится вызвать конструктор согласно следующему примеру.

Получим следующий результат:

Ключевое слово this

Ключевое слово this — используется для ссылки на текущий класс с учетом метода или конструктора экземпляра. Используя this в Java, Вы можете ссылаться на экземпляры класса, такие как конструкторы, переменные и методы.

Примечание: ключевое слово this используется только в составе методов либо конструкторов экземпляра.

Как правило, ключевое слово this в Java используется для:

  • дифференцирования между переменными экземпляра и локальными переменными в случае, если у них одинаковые имена, в составе конструктора или метода.
  • вызова конструктора одного типа (параметризованного конструктора либо конструктора по умолчанию) из другого в составе класса. Данный процесс также носит название явного вызова конструктора.

Пример

Далее представлен пример, в котором ключевое слово this используется для доступа к экземплярам класса. Необходимо копировать и вставить данную программу в файл с названием This_Example.java.

В итоге будет получен следующий результат:

Аргументы переменной (var-args)

JDK 1.5 и выше позволяет передавать методу переменное количество аргументов одного типа. Параметр в методе объявляется следующим образом:

При объявлении метода Вы указываете тип, за которым следует многоточие (. ). В методе может быть указан только один параметр переменной длины, и этот параметр должен быть последним параметром. Любые регулярные параметры должны предшествовать ему.

Пример

В итоге будет получен следующий результат:

Метод finalize()

Метод finalize() — метод, который будет вызываться непосредственно перед окончательным уничтожением объекта сборщиком мусора. (финализатором). В Java finalize() может быть использован для обеспечения чистого завершения объекта.

К примеру, мы можете использовать finalize() чтобы удостовериться в том, что открытый файл, принадлежащий данному объекту, был закрыт.

Для добавления финализатора в класс, вам просто следует определить метод finalize() в Java. Среда выполнения Java производит вызов данного метода непосредственно перед обработкой объекта данного класса.

В составе метода finalize(), вы указываете те действия, которые должны быть выполнены перед уничтожением объекта.

В общем виде метод finalize() выглядит следующим образом:

Здесь ключевое слово protected представляет спецификатор, предотвращающий доступ к finalize() посредством кода, определяемого вне его класса.

Это свидетельствует о том, что вы не можете знать как или даже когда будет производиться выполнение finalize(). К примеру, если ваша программа будет окончена до «сборки мусора», finalize() не будет выполняться.

Используется для ссылочного типа Java Void?

Существует Java Void — верхний регистр V— тип ссылки. Единственная ситуация, которую я когда-либо видел, это параметризация Callable

Существуют ли другие типы использования для ссылочного типа Java Void ? Может ли когда-нибудь назначаться что-либо кроме null ? Если да, есть ли у вас примеры?

Void стал условным для общего аргумента, который вас не интересует. Нет причин, по которым вы должны использовать любой другой неинтересный тип, например System .

Он также часто используется в примерах Map (хотя Collections.newSetFromMap использует Boolean , поскольку карты не должны принимать значения null ) и java.security.PrivilegedAction .

Я написал запись в блоге на Void несколько лет назад.

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

печатает что-то вроде

Future работает как шарм.:)

Учитывая, что нет публичных конструкторов, я бы сказал, что ему нельзя назначить ничего, кроме null . Я использовал его только как заполнитель для «Мне не нужно использовать этот общий параметр», как показывает ваш пример.

Он также может быть использован в отражении, из чего его Javadoc говорит:

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

Все примитивные классы-оболочки ( Integer , Byte , Boolean , Double и т.д.) содержат ссылку на соответствующий примитивный класс в статическом поле TYPE , например:

Void был первоначально создан как где-то, чтобы поместить ссылку на тип Void :

Читать еще:  Как узнать длину arraylist в java

Однако вы ничего не получаете, используя Void.TYPE . Когда вы используете void.class , гораздо понятнее, что вы что-то делаете с типом Void .

Как и в прошлом, в прошлый раз, когда я попробовал, BeanShell не распознал void.class , поэтому вам нужно использовать Void.TYPE там.

Когда вы используете шаблон , может быть более чистым использовать Void вместо Object, если вы хотите быть уверены, что возвращаемое значение будет null

Когда вы реализуете своего посетителя, вы можете явно установить OUT как Void, чтобы вы знали, что ваш посетитель всегда будет возвращать null, вместо использования Object

До generics он был создан для API отражения, чтобы сохранить TYPE, возвращенный Method.getReturnType() для метода void, соответствующего другим классам примитивного типа.

EDIT: из JavaDoc of Void: «Класс Void является неинтересным классом-заполнителем для ссылки на объект класса, представляющий ключевое слово void Java». До Generics, я знаю, что не нужно, кроме размышлений.

Void создает для обнуления его примитивный тип void. Каждый примитивный тип имеет соответствующий тип ссылки. Void используется для создания экземпляра универсального класса или использования общего метода. Общие аргументы, которые вас не интересуют, и вот пример.

здесь, как вы можете видеть, я не хочу ничего с сервера, который я прошу создать новые регистрации, но public interface AsyncCallback < . >— это общий интерфейс, поэтому я предоставляю Void, поскольку generics не принимают примитивные типы

Поскольку вы не можете создать экземпляр Void, вы можете использовать Apache commons Null object, поэтому

в первой строке у вас есть объект, поэтому aNullObject != null выполняется, а во второй строке нет ссылки, поэтому noObjectHere == null содержит

Чтобы ответить на исходный вопрос постеру, для этого нужно различать «ничего» и «ничего», которые совершенно разные вещи.

PS: Скажите «нет» объекту «Null object»

Он также обычно используется для обратных вызовов завершения Async-IO, когда у вас нет необходимости в объекте Attachment . В этом случае вы указываете значение null для операции ввода-вывода и реализуете CompletionHandler .

Java void type

78765 просмотра

11 ответа

12668 Репутация автора

Существует Java Void — прописной V— ссылочный тип . Единственная ситуация , которую я когда — либо видел , как это используется параметризация Callable сек

Есть ли другие способы использования Void ссылочного типа Java ? Можно ли когда-нибудь назначить что-то кроме null ? Если да, у вас есть примеры?

Ответы (11)

27 плюса

2070 Репутация автора

Future работает как шарм. 🙂

19 плюса

163877 Репутация автора

Учитывая, что нет открытых конструкторов , я бы сказал, что нельзя назначить ничего, кроме null . Я использовал его только как заполнитель для «мне не нужно использовать этот универсальный параметр», как показывает ваш пример.

Это может также использоваться в рефлексии, из того, что говорит его Javadoc :

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

114 плюса

130835 Репутация автора

Void стало соглашением для универсального аргумента, который вас не интересует. Нет никаких причин, по которым вы должны использовать любой другой неинстанцируемый тип, такой как System .

Это также часто используется, например, в Map значениях (хотя Collections.newSetFromMap использование в Boolean качестве карт не должно принимать null значения) и java.security.PrivilegedAction .

Я написал запись раздела на Void несколько лет назад.

48 плюса

463250 Репутация автора

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

печатает что-то вроде

17 плюса

48478 Репутация автора

Все примитивные классы обертки ( Integer , Byte , Boolean , Double и т.д.) содержат ссылку на соответствующем примитивный класс в статическом TYPE поле, например:

Void Первоначально был создан как-то, чтобы поместить ссылку на void тип:

Тем не менее, вы ничего не получите с помощью Void.TYPE . Когда вы используете, void.class становится намного понятнее, что вы делаете что-то с void типом.

Кроме того, в последний раз, когда я пробовал это, BeanShell не распознавал void.class , так что вы должны использовать Void.TYPE там.

5 плюса

48685 Репутация автора

До обобщения это было создано для API отражения, чтобы хранить TYPE, возвращаемый Method.getReturnType () для метода void, соответствующего другим классам примитивных типов.

РЕДАКТИРОВАТЬ: Из JavaDoc Void: «Класс Void является нереализуемым классом-заполнителем для хранения ссылки на объект Class, представляющий ключевое слово Java void». До Generics я не знаю ничего, кроме размышлений.

1 плюс

8255 Репутация автора

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

здесь, как вы можете видеть, я не хочу ничего от сервера, который я запрашиваю для создания новых регистраций, но public interface AsyncCallback < . >это универсальный интерфейс, поэтому я предоставляю Void, поскольку универсальные шаблоны не принимают примитивные типы

Автор: Adelin Размещён: 21.04.2012 07:30

8 плюса

2536 Репутация автора

Когда вы используете шаблон посетителя, может быть лучше использовать Void вместо Object, если вы хотите быть уверены, что возвращаемое значение будет нулевым

Когда вы реализуете своего посетителя, вы можете явно установить для OUT значение Void, чтобы вы знали, что ваш посетитель всегда будет возвращать ноль вместо использования Object

плюса

8302 Репутация автора

Он также обычно используется в обратных вызовах завершения Async-IO, когда у вас нет необходимости в Attachment объекте. В этом случае вы указываете null для операции ввода-вывода и реализуете CompletionHandler .

Автор: eckes Размещён: 10.08.2014 03:33

3 плюса

337 Репутация автора

Поскольку вы не можете создать экземпляр Void, вы можете использовать Apache commons Null object , поэтому

в первой строке у вас есть объект, так что aNullObject != null держит, в то время как во второй строке нет ссылки, поэтому noObjectHere == null держит

Чтобы ответить на оригинальный вопрос автора, для этого нужно различать «ничто» и «ничто», которые являются совершенно разными вещами.

PS: скажите нет объектному образцу Null

Автор: Mar Bar Размещён: 07.01.2015 07:34

плюса

24752 Репутация автора

Это может быть редким случаем, но однажды я использовал Void в классах аспектов.

Это был аспект, который выполняется после методов с @Log аннотацией и регистрирует возвращенный метод и некоторую информацию, если тип возвращаемого метода не void.

Ссылка на основную публикацию
Adblock
detector