底部成员方法连续使用“。”。操作员调用成员“ set”方法作为返回对象的方法
我以前没有遇到过这种语法 这是有效的Java语法吗?该链接称为什么(如何查找此类语法用法?)?
public class OrderItemModel {
private String restaurantId;
private String restaurantName;
private List<FoodModel> foods;
private List<Long> numOfFoods;
private OrderItemModel() {}
。 。
public static OrderItemModel buildAdditional(ShoppingCartModel shoppingCart) {
return new OrderItemModel().
setRestaturantId(shoppingCart.getAdditionalRestaurantID()).
setRestaurntName(shoppingCart.getAdditionalRestaurantName()).
setFoods(shoppingCart.getAdditionalFoods()).
setNumOfFoods(shoppingCart.getNumOfAdditionalFood());
}
答案 0 :(得分:0)
使用这样的方法是可行的,当它们被调用时会返回该类的实例:
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
在返回的那个实例上等等。它不叫做“点运算符” ,它只是链接方法调用。