繁体   English   中英

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

[英]What is the dot-notation between class names and what does it mean?

.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是一种方法,但是其首字母大写,因此感到困惑。

这种模式称为方法链接

Builder是AlertDialog的静态内部类。

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

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

class AlertDialog {

   static class Builder {
..

BuilderAlertDialog类的静态内部类。

我建议您阅读以下有关嵌套类的用法和实用程序的信息

查看文档

BuilderAlertDialog类中定义的静态类。 您在称它为构造函数。

这是Builder设计模式

您在代码中执行的操作:

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

Builder模式是一种创新的设计模式,它意味着它解决了与对象创建相关的问题。 Java中的构造函数用于创建对象,并且可以采用创建对象所需的参数。 问题开始于可以使用许多参数创建对象时,其中一些参数可能是必需的,而其他参数则是可选的。 当构造函数中所需的参数数量通常大于或等于4或最多5时,应使用Builder设计模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM