Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Что можно сравнивать через == ? / 12 сообщений из 12, страница 1 из 1
22.05.2014, 13:02
    #38648869
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
Какие парвила тут действуют?
P.S. вопрос на синтаксис языка
...
Рейтинг: 0 / 0
22.05.2014, 13:20
    #38648917
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
redwhite90Какие парвила тут действуют?
P.S. вопрос на синтаксис языка
В основном только целочисленные примитивы и энумы (и аналогичные синглтоны). В редких случаях можно использовать для других ссылок. Но я это делаю только тогда, когда получил ссылку в этом же методе и в нем же гарантировано нужно проверить тот же экземпляр. Например в цикле.
...
Рейтинг: 0 / 0
22.05.2014, 13:28
    #38648938
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
Blazkowicz,

интересно про аналогичные синглтоны. Какие например ?

я вообще про другие правила)

как я понял можно сравнить на == только то, что можно приравнять на = хотя бы в одну строну. То есть типы должны быть приводимы.
или это не совсем так ?
...
Рейтинг: 0 / 0
22.05.2014, 13:31
    #38648949
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
redwhite90Какие парвила тут действуют?

Фсе.
В первую очередь - примитивы.
Во вторую - null.
В третью очередь ссылки на объекты.
...
Рейтинг: 0 / 0
22.05.2014, 13:32
    #38648951
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
redwhite90интересно про аналогичные синглтоны. Какие например ?

public static final

redwhite90я вообще про другие правила)

Телепаты в отпуске.

redwhite90как я понял можно сравнить на == только то, что можно приравнять на = хотя бы в одну строну. То есть типы должны быть приводимы.
или это не совсем так ?
JLS надо смотреть.
...
Рейтинг: 0 / 0
22.05.2014, 13:35
    #38648959
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
JLSThe equality operators may be used to compare two operands that are convertible (§5.1.8) to numeric type, or two operands of type boolean or Boolean, or two operands that are each of either reference type or the null type. All other cases result in a compile-time error.
...
Рейтинг: 0 / 0
22.05.2014, 14:43
    #38649112
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
BlazkowiczJLSThe equality operators may be used to compare two operands that are convertible (§5.1.8) to numeric type, or two operands of type boolean or Boolean, or two operands that are each of either reference type or the null type. All other cases result in a compile-time error.

1.значит можно сравнить то, что можно привести к примитивам(кроме boolean)
2.boolean и Boolean в разных вариациях
2.Две любых ссылки и null в любых вариациях

Код: java
1.
2.
3.
 String str= "";
       Number num = 1;
       System.out.println(str == num);



так говорит, что incompatible types.

Где написано, что они должны быть compatible ?
...
Рейтинг: 0 / 0
22.05.2014, 15:31
    #38649169
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
Есть поведение компиллятора при котором строковые константы можно
сравнивать через знак "==" и это работает. Но я не уверен что это можно
принимать за правило или как-то обобщать.
...
Рейтинг: 0 / 0
22.05.2014, 16:49
    #38649271
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
redwhite90Blazkowiczпропущено...


1.значит можно сравнить то, что можно привести к примитивам(кроме boolean)
2.boolean и Boolean в разных вариациях
2.Две любых ссылки и null в любых вариациях

Код: java
1.
2.
3.
 String str= "";
       Number num = 1;
       System.out.println(str == num);



так говорит, что incompatible types.

Где написано, что они должны быть compatible ?
Дак дальше смотрите:
авторIt is a compile-time error if it is impossible to convert the type of either operand to the type of the other by a casting conversion (§5.5). The run-time values of the two operands would necessarily be unequal.
...
Рейтинг: 0 / 0
22.05.2014, 19:13
    #38649505
DEVcoach
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
maytonЕсть поведение компиллятора при котором строковые константы можно
сравнивать через знак "==" и это работает. Но я не уверен что это можно
принимать за правило или как-то обобщать.Ну так правильно, стринги же синглтоны. Но сравнивать через == их можно только в том случае, если вы уверены, что с ними не было всяких трюков вроде new String().
...
Рейтинг: 0 / 0
22.05.2014, 19:19
    #38649511
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
DEVcoachmaytonЕсть поведение компиллятора при котором строковые константы можно
сравнивать через знак "==" и это работает. Но я не уверен что это можно
принимать за правило или как-то обобщать.Ну так правильно, стринги же синглтоны. Но сравнивать через == их можно только в том случае, если вы уверены, что с ними не было всяких трюков вроде new String().

ну собственно если обощить, то строки интернируются в том случае если не используется явное new.
...
Рейтинг: 0 / 0
22.05.2014, 19:20
    #38649512
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что можно сравнивать через == ?
на память ещё - Boolean это касается и Integer в диапазоне от -128 до 127
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Что можно сравнивать через == ? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]