Когда я использую сравнение строк JLabel с ==
, оно отлично работает
private JLabel someJLabel = new JLabel("some text");
...
System.out.println (someJLabel.getText() == "some text"); // returns true
, но когда я использую JTextField
private JTextField someJTextField = new JTextField("some text");
...
System.out.println (someJTextField.getText() == "some text"); // returns false
, я знаю, что если бы я использовал someJTextField.getText().equals("some text");
, это сработало быхорошо.
Так почему он работает с JLabel, а не с JTextField
РЕДАКТИРОВАТЬ: да, я знаю, что я должен использовать .equals
со строкой, я читал эту статью http://javatechniques.com/blog/string-equality-and-interning/, ноуже известно, что я буду использовать «некоторый текст», чтобы он мог ссылаться на тот же строковый объект