私はプログラミングに慣れていないので、これは私の見解を完全に監視することができます。しかし、Ifタグの2つの値が同等であることを確認できます(下にあります)が、私の値が返されていません。返品時にループが終了しない
public static LANGUAGESTRING toLangString(String text) {
for (LANGUAGESTRING lang : LANGUAGESTRING.values()) {
String langStr = lang.toString();
System.out.println(langStr);
System.out.println(text);
if (text == langStr) {
return lang;
}
}
return null;
}
これは印刷されたものです。これは私のLANGUAGESTRING列挙型ではありませんが、ここからポイントを得ることができます。それは、習慣を返す必要がありますよね? 5行目と6行目が同じであることを見ていますか?そしてそれを返すとしても、ループを壊すでしょうね。
[14:41:45] GodToBelieverPrayerWhenNoItemNeed
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayerTooSoon
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] EnterHolyLandInfoYourGod
[14:41:45] GodToBelieverPrayingWeak
(それらのメモリアドレスに格納されているものの内容が等しい、すなわち場合)コンテンツ平等で代わりに興味を持っています!速いヘルプありがとう!なぜそれが偶然であるのか私に説明することができますか? –
==は、2つの変数がオブジェクトの同じ「参照」を指しているかどうかをチェックしています。 equals()メソッドは、2つのオブジェクトが同じかどうかをチェックします。したがって、参照チェックでは、2つのものが同じメモリ位置にあるかどうかを調べるのに対して、メソッドはデータが同じかどうかをチェックします。 – satnam
またこちらをご覧ください:http://stackoverflow.com/questions/7520432/what-is-the-difference-between-vs-equals-in-java – satnam