java - 简单的 if else 语句不起作用

标签 java android if-statement

<分区>

我有一个简单的密码保护。我这样做:

EditText editText1 =  (EditText) findViewById(R.id.editText1);
String Password = editText1.getText().toString();
if(Password == "a"){
  Toast.makeText(getApplicationContext(), "Success" + Password, Toast.LENGTH_SHORT).show();
} else {
  Toast.makeText(getApplicationContext(), "Failure" + Password, Toast.LENGTH_SHORT).show();
}

我有编辑文本和按钮。如果用户输入“a”,toast 应该说成功。但它总是说失败。我不明白我的代码有什么问题...

最佳答案

在 Java 中,对非原始表达式使用 == 将始终比较对象引用。您在询问 Password 是否指代与字符串文字“a”完全相同的对象。

使用其中之一:

if (Password.equals("a"))

if ("a".equals(Password))

这些将调用 String.equals(Object) 覆盖,它确定两个引用是否引用相等 String 对象 - 即相同的字符逻辑序列。

如果Password为null,前者会抛出异常;后者不会。不要将此视为始终使用后一种形式的建议 - 如果 Password 不应该 为 null,则异常可能比继续处于意外状态更好.

我还鼓励您与变量名保持一致 - 通常局部变量采用驼峰式命名,因此您应使用 password 而不是 Password

关于java - 简单的 if else 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331827/

相关文章:

Java NetBeans IDE - JPanel 中的动画闪烁

android - 通过图标点击 flutter 打开设备上的联系人

android - 启动接收推送通知的 Activity (如 Skype/WhatsApp 通话)

ios - 如何检查 View 是否有标签?

c# - 如何确保用户在文本框中输入了电子邮件地址?

java - jboss url 形式的 servlet

java - 访问构造函数中未包含的方法

java - 在 android 的棉花糖设备中从 RSA key 生成私钥的异常

android - 如何在数据插入到 SQLite 后立即更新 ListView

c++ - 用位板识别棋子