AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).setIcon(android.R.drawable.ic_delete).setMessage("Exit?").setTitle("Confirm").show();
以上的语法中,可以连续用多个.setXXX方法,然后最后用.show().请问java中为什么能够用多个"."呢?语法上怎么解释?java语法
以上的语法中,可以连续用多个.setXXX方法,然后最后用.show().请问java中为什么能够用多个"."呢?语法上怎么解释?java语法
这个代码等效于 AlertDialog dialog = (new AlertDialog.Builder(MainActivity.this)).setIcon(android.R.drawable.ic_delete).setMessage("Exit?").setTitle("Confirm").show(); "new AlertDialog.Builder(MainActivity.this)"返回了一个Builder类型的对象,setIcon也返回一个builder对象,依次类推。但是奇怪的是,“.”的优先级高于new运算符,也就是应该等价于AlertDialog dialog = new ( AlertDialog.Builder(MainActivity.this).setIcon(android.R.drawable.ic_delete) ).setMessage("Exit?").setTitle("Confirm").show();但是这样修改又有一个语法错误。到底是怎么回事?
我刚开始学习java,遇到这种语法不太明白。
我查了资料, [].()属于优先级第一序列,new属于第二序列,所有.的优先级比new要高。
优先级资料如下
http://flysnow.iteye.com/blog/703112