ионная / угловая проблема: ошибка при попытке различить '[объект объекта]'

Java рассматривает String как особый класс, вы можете инициализировать в обоих направлениях

  1. Прямо назначать литерал
    String a = "adsasdf";
    
  2. Как и другие объекты с использованием нового ключевого слова
    String a = new String("adsasdf");
    

Вам нужно проявлять особую осторожность, когда вы хотите сравнить с знаком ==:

String a = "asdf";
String b = "asdf";
System.out.println(a == b);  // True
System.out.println(a.equals(b)); // True

String a = new String("asdf");
String b = new String("asdf");
System.out.println(a == b);  // False
System.out.println(a.equals(b)); // True

Это потому, что в первом случае сохраняются объекты a и b в том, что называется literal pool, и оба они ссылаются на один и тот же объект, поэтому они равны в обоих направлениях.

Но во втором случае a и b ссылаются на разные объекты, например, когда мы инициализируем любые другие объекты. поэтому они неравны по сравнению с == оператором, тогда как они равны по значениям.

-1
задан Primo Chalice 23 February 2019 в 12:14
поделиться

1 ответ

В этой ошибке вы используете итерацию в объекте ... В ионной итерации выполняется только массив

0
ответ дан siva kumar 23 February 2019 в 12:14
поделиться
Другие вопросы по тегам:

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