是否允许使用点运算符(而不是连续方法调用?)这种叫点运算符的用法是什么

时间:2018-11-01 19:16:51

标签: java

底部成员方法连续使用“。”。操作员调用成员“ 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());
    }

1 个答案:

答案 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在返回的那个实例上等等。它不叫做“点运算符” ,它只是链接方法调用。