java - 为什么我的 Java 链式方法尝试不起作用?

标签 java android

在 Udacity 开发 Android 应用程序的初学者类(class)中,他们在初学者类(class)之一中介绍了链接方法的一个简短示例。

这是代码 fragment :

public void submitOrder(View view) {

    /** 
     * Chaining method example given by Udacity. 
     * stringName variable successfully receives the string value.
     */
    EditText inputName = (EditText) findViewById(R.id.name_input);
    String stringName = inputName.getText().toString(); 

    /** 
     * My own example. 
     * Cannot resolve method 'toString()' error message occurs.
     */
    CheckBox checkBox = (CheckBox) findViewById(R.id.check_box);
    String hasWhippedCream = checkBox.isChecked().toString();

    // What I found by searching on google to make 'toString' work on Boolean
    String has = Boolean.toString(checkBox.isChecked());

}

Udacity 的讲师所说的是,为了使链接方法起作用,第一个返回值必须在其类中包含以下方法。

对于上面的例子,她解释说inputName.getText()返回Editable对象&它有toString()方法在其类中,因此此链接方法是有效的,并将在 toString() 上返回字符串。调用它并保存在 stringName 中。

当我尝试在 Boolean 上实现相同格式的链接方法时,我感到困惑。返回。在上面我自己的示例中,我调用 checkBox.isChecked() ,其返回类型 boolean 。现在,Boolean确实有toString()根据android文档的方法,所以它应该可以工作,但它不会弹出错误消息。

但是,我在 google 上找到的格式确实有效:

String has = Boolean.toString(checkBox.isChecked())

问题:

  • 为什么我的 boolean 返回类型链接方法不起作用?
  • 在创建如上所示的链接方法时,是否有一组要遵循的格式规则?为什么 Boolean具有与 inputName.getText() 不同格式的链接方法如上图所示?

最佳答案

Booleanboolean 是 Java 中的不同类型(注意 B)。 Boolean 是一个包装类,它提供了将原始数据类型(本例中为 boolean)转换为对象以及将对象转换为原始数据类型的机制。

这有效:Boolean.toString(checkBox.isChecked()); 因为它使用 boolean 包装类的静态方法 toStringisChecked() 方法返回的原始 boolean 值checkBox 转换为code> Boolean 对象

有关包装类的更多信息:

  1. https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html
  2. http://www.javatpoint.com/wrapper-class-in-java

简单地说,isChecked() 返回一个原始的 boolean,它没有任何方法,因此您不能在那里进行方法链接。

关于java - 为什么我的 Java 链式方法尝试不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40015002/

相关文章:

Android 并发数据库操作—— "database is locked"

javascript - 无法访问照片中的相机胶卷 react native

java - 使用另一个Java文件运行Java文件时出错

java - ZXing BinaryBitmap 到 BufferedImage

java - 如何在速度工具中获取 HttpServletRequest?

java - 尝试让一个简单的相机应用程序工作

android - 制作 Vcard 时在 Android ICS 中出现错误

android - 如何更新我的 android 应用程序中的数据?

java - XML解析安卓

java - 使用 ehcache 缓存 java.util.Map