Вызов функции внутри условия оператора if

Будет ли следующее добавлять obj к словам (изменить: предполагая, что obj является правильным типом, И оператор возвращает логическое значение):

if (words.add(obj)){
   System.out.print("success!");
}

Это зависит. Если слова являются набором, который уже содержит равный объект, он не добавит его.

Eran 05.06.2019 07:19

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

R.LM 05.06.2019 07:21

Зависит от того, что такое words и что такое obj. На вопрос нельзя ответить как таковой.

Robby Cornelissen 05.06.2019 07:21

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

ivyraveneve 05.06.2019 07:27

Все еще зависит от типа words. Несмотря на это, чтение JavaDoc соответствующего метода должно дать достаточную ясность в отношении его семантики. Что касается выполнения метода: размещение вызова метода внутри условия if () не влияет на то, как и выполняется ли метод (за исключением таких случаев, как логические операторы короткого замыкания и т. д.).

Robby Cornelissen 05.06.2019 07:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
3 780
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

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

Ответ принят как подходящий

Will the following add obj to words (edit: assuming obj is the right type AND the statement returns a boolean value

Предполагая, что код может работать без ошибок (т. е. add() возвращает логическое значение), ваш метод words.add() будет вызываться в операторе if.

Методы, написанные в операторе if, будут вызываться и оцениваться.

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