java new object.method()为什么不是一个错误?
对不起,我的英语口语水平很低。 例如:java new object.method()为什么不是一个错误?,java,Java,对不起,我的英语口语水平很低。 例如: new StringBuilder().reverse().toString(); 运算符在new之前,因此没有要执行的对象方法(),为什么可以正确执行?它没有告诉我这是一个错误。在新建StringBuilder()之前未对运算符进行求值-它是从左到右求值的。因此new StringBuilder()创建一个StringBuilder实例,.reverse()反转(空的)StringBuilder,然后.toString()构造一个(空的)字符串 运算符
new StringBuilder().reverse().toString();
运算符
在new
之前,因此没有要执行的对象方法()
,为什么可以正确执行?它没有告诉我这是一个错误。在新建StringBuilder()之前未对
运算符进行求值-它是从左到右求值的。因此new StringBuilder()
创建一个StringBuilder
实例,.reverse()
反转(空的)StringBuilder
,然后.toString()
构造一个(空的)字符串
运算符“.”早于new
不,不是。运算符
不在新的
之前:它们都是主要的
,因此它们具有相同的优先级,因此从左到右求值
为什么这可以正确执行
真正的问题是为什么它可以被编译,我已经回答了
它没有告诉我这是个错误
这不是一个错误。您的问题不清楚,也没有什么意义。很明显,操作员
没有在新的之前。事实上,它们都是初级
,所以它们的优先级相同,所以它们从左到右求值。@Rahul-对我来说,初学者的这个问题显然是有道理的。我仍然记得我开始(用java)编程时提出的愚蠢问题。@Rahul这个问题非常清楚。这只是基于一个错误。“我有一个假设,这证明是不正确的。为什么证明是不正确的?”回答:你的假设是错误的,而不是证明