类名之间的点符号是什么意思?

时间:2013-09-26 14:34:52

标签: java android syntax

这个.notation(AlertDialog.Builder)在类构造函数中的含义是什么?

public Dialog onCreateDialog(Bundle savedInstanceState) {

    return new AlertDialog.Builder(getActivity())
        .setTitle(R.string.date_picker_title)
        .setPositiveButton(android.R.string.ok, null)
        .create();

}

是否意味着在AlertDialog类中定义了Builder类?或者Builder是一种方法,但它的第一个字母大写,所以我很困惑。

5 个答案:

答案 0 :(得分:12)

此模式称为method chaining

Builder是AlertDialog的静态内部类。

Builder中的每个方法都返回一个Builder(通常是“this”)而不是void。

答案 1 :(得分:2)

这意味着Builder是AlertDialog类中的静态嵌套类,即

class AlertDialog {

   static class Builder {
..

答案 2 :(得分:0)

BuilderAlertDialog类的静态内部类。

我建议你阅读this关于嵌套类的用法和效用

答案 3 :(得分:0)

Check out the documentation

BuilderAlertDialog类中定义的静态类。你正在调用它的构造函数。

答案 4 :(得分:0)

这是Builder design pattern

您在代码中执行的操作:

  • 创建Builder类的实例 - new AlertDialog.Builder(getActivity())
  • 设置调用setTitlesetPositiveButton
  • 的属性
  • 使用Builder的属性调用AlertDialog方法创建create()的实例。
  

构建器模式是一种创建设计模式,它意味着它解决了与对象创建相关的问题。 Java中的构造函数用于创建对象,并可以获取创建对象所需的参数。当可以使用大量参数创建对象时问题开始,其中一些可能是强制性的,而其他参数可能是可选的。当构造函数中所需的参数数量通常超过4或最多5时,应使用构建器设计模式。