本人是学C++的,最近由于要做android开发,开始看java的内容,今天遇到一个疑问想请教一下。new AlertDialog.Builder(TestUI.this)
.setIcon(R.drawable.ic_launcher)
.setTitle("Information")
.setMessage(eText.getText())
.show();
上面这段代码是android中设置一个对话框属性的代码,为什么一个对象可以连续的调用方法呢?
我上网查了一下,有人说返回的类型是一个对象,这个对象再继续调用下一个方法,但我查了一下android的api文档,发现setIcon、setMessag和setTitle都是返回void类型啊。
还是说这是java的一个书写习惯呢?

解决方案 »

  1.   

    要真是返回值是void,
    撇开android,单纯java里也没见过这么写的。
      

  2.   

    AlertDialog.Builder(TestUI.this)是个对象
    setIcon、setMessag和setTitle都是返回void类型
    那new AlertDialog.Builder(TestUI.this)
    .setIcon(R.drawable.ic_launcher)
    .setTitle("Information")
    .setMessage(eText.getText())
    .show();
    相当于
    new AlertDialog.Builder(TestUI.this)
    .setIcon(R.drawable.ic_launcher).show();;
    new AlertDialog.Builder(TestUI.this)
    .setTitle("Information").show();
    new AlertDialog.Builder(TestUI.this)
    .setMessage(eText.getText()).show();
      

  3.   

    2楼说的正确,这种语法就是android中有,你应该去问做android的,或者去看android书,java中的语法也没这么用的
      

  4.   

    已经解决了,api文档里面AlertDialog下返回类型都是void,但是子类builder把这些方法都重写了,返回类型都变成AlertDialog.Builder了,这样就好理解了。