2楼是正解。 (1)show()方法是放在了Builder 类下,(3)返回的是一个AlertDialog的对象。这里的(1)和(3)对应着你上边的代码段的编号。而(2)是把show()返回的AlertDialog对象,赋值给Builder 对象,这如果不加强转的话肯定是错误的。放个java文件你自己理解下; public class One { private void show() { System.out.println("show1"); } public static class Builder{ public One show() { One a = new One(); a.show(); return a; } }
} public class Main { /** * @param args */ public static void main(String[] args) {
//1 One.Builder a1 = new One.Builder(); a1.show();
AlertDialog dialog = create();
dialog.show();
return dialog;
}可以看出 show方法返回的是AlertDialog,与你的定义AlertDialog.Builder buide不匹配
AlertDialog 是另一个类
实现方法肯定不一样啊
public class One { private void show() {
System.out.println("show1"); }
public static class Builder{
public One show() {
One a = new One();
a.show();
return a;
}
}
}
public class Main { /**
* @param args
*/
public static void main(String[] args) {
//1
One.Builder a1 = new One.Builder();
a1.show();
//2
//One.Builder a2 = new One.Builder().show();
//3
//One a3 = new One.Builder().show();
}
}