Java 是否允许使用点运算符(连续方法调用而不是?点运算符调用的用法是什么
底部成员方法连续使用“.”运算符调用成员“set”方法作为返回对象的方式 我以前从未遇到过这种语法 这是有效的Java语法吗?这种链接称为什么(如何查找这种语法用法?)Java 是否允许使用点运算符(连续方法调用而不是?点运算符调用的用法是什么,java,Java,底部成员方法连续使用“.”运算符调用成员“set”方法作为返回对象的方式 我以前从未遇到过这种语法 这是有效的Java语法吗?这种链接称为什么(如何查找这种语法用法?) 这对于这样的方法是可能的,它们在被调用时返回类的实例: class Person { public Person setName(String a) { return this; } public Person setAge(int age) { return th
这对于这样的方法是可能的,它们在被调用时返回类的实例:
class Person {
public Person setName(String a) {
return this;
}
public Person setAge(int age) {
return this;
}
}
像这样使用它:
Person person = new Person();
person.setName("abc").setAge(19);
这可能是因为您有变量
person
,您使用setName
设置名称,但是setName
返回该类的实例,因此您可以对返回的实例调用setAge
。它不是“点运算符”,只是链接方法调用。Builder模式s方法链接。它构造一个新对象,调用对象上的方法,调用第一个方法返回的方法,等等。注意:当在多行上链接时,通常会缩进并在行的开头加上点,以向读者清楚地表明这是语句的延续,并且为了更好或更好更糟糕的是,标准JavaBean设置器是无效的(不返回this
),因此这种样式通常只在构建器中出现。
class Person {
public Person setName(String a) {
return this;
}
public Person setAge(int age) {
return this;
}
}
Person person = new Person();
person.setName("abc").setAge(19);