Я просто написал код:JAVA Логическое конструктор дает неожиданный результат
Boolean b1 = new Boolean("programmer");
Boolean b2 = new Boolean("tester");
System.out.println(b1.equals(b2));
Он печатает true
в выводе. Почему?
Согласно JAVA документации
new Boolean(String)
: Выделяет объект, представляющий логическое значение истина, если строка аргумент не является нулевым, и равно, игнорируя случай, в строке «истина».
Оба булевых объекта являются ложными, поэтому они равны, и ваша проверка равен будет распечатывать true. Здесь нет ничего неожиданного. –
Прочтите последнее предложение очень внимательно. Это дает вам основание. – Guy
Потому что «Выделяет логический объект, представляющий значение true, если строковый аргумент не равен нулю и равен, игнорируя регистр, строке« true ». Все остальное ложно. –