Поведение == с универсальными типами ⇐ JAVA
Поведение == с универсальными типами
Рассмотрим следующий фрагмент:
List objs1 = Arrays.asList("один", "два"); List strs1 = (List)(List)objs1; утверждать strs1 == objs1; //ошибка компиляции Поскольку == сравнивает только идентификатор объекта, почему он выдает ошибку компиляции, когда это просто вопрос приведения.
Рассмотрим следующий фрагмент — здесь утверждение не подводит:
String str = "вот и все"; Объект оо = ул; утверждать ул == оо; // утверждает истину И здесь мы делаем то же самое, но все работает нормально.
[*]Почему оператор == ведет себя в зависимости от ссылочного типа, содержащего объект, даже если удерживаемый объект один и тот же?
Рассмотрим следующий фрагмент:
List objs1 = Arrays.asList("один", "два"); List strs1 = (List)(List)objs1; утверждать strs1 == objs1; //ошибка компиляции Поскольку == сравнивает только идентификатор объекта, почему он выдает ошибку компиляции, когда это просто вопрос приведения.
Рассмотрим следующий фрагмент — здесь утверждение не подводит:
String str = "вот и все"; Объект оо = ул; утверждать ул == оо; // утверждает истину И здесь мы делаем то же самое, но все работает нормально.
[*]Почему оператор == ведет себя в зависимости от ссылочного типа, содержащего объект, даже если удерживаемый объект один и тот же?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение