当前位置: 首页 > 知识库问答 >
问题:

点操作符的这种用法是允许的吗(连续方法调用而不是?点操作符的这种用法称为[复制]

令狐经武
2023-03-14

底部成员方法连续使用“”运算符调用成员“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个答案

邵劲
2023-03-14

这对于这样的方法是可能的,它们在调用时返回类的实例:

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);

这是可能的原因是您有变量,您使用setName设置名称,但setName返回该类的实例,因此您可以调用setAGE对返回的实例等。它不称为“点操作符”,它只是链接方法调用。

 类似资料:
  • 这是一个使用合并排序的程序,从1到1000对1000个数字的列表进行排序。它显示原始列表,然后调用递归方法对其进行排序,然后显示。 代码中我不明白的是这两行: 合并排序(数字,低,中);//在方法中,它会说“这里” 合并排序(数字,中间1,高); 我是java的初学者,这与我所学的一切背道而驰,因为我无法理解如何在方法中调用方法。除非它是一个我怀疑的对象。有人能解释一下这两行代码的作用吗?

  • 问题内容: 这段代码有什么问题: 问题答案: 三元运算符不能有不返回值或方法的语句。您需要具有返回值的语句。 您需要重写它。

  • 问题内容: 我在Javascript中使用Ajax来获取其他页面上的值。 但恐怕它不适用于某些浏览器甚至操作系统。使用安全吗?还是使用jQuery Ajax更好? (详细信息:我不想使用jQuery!) 问题答案: 首先尝试使用 真正的 JavaScript 进行投票! 其次,您可能没有意识到,但是您将代码视为文本,而不是代码。不要使用也不要使用。您需要使用适当的DOM方法,例如,尽管使用AJAX

  • 问题内容: 我有以下代码: 我希望它能打印a = 2 b = 1,但它却打印相反的东西。因此很明显,swap方法不会交换a和b值。为什么? 问题答案: 这与整数的不变性无关。它与 Java是值传递 ,该死 的事实有关! (不烦恼,只是文章标题:p) 总结一下:您实际上不能在Java中创建交换方法。您只需要在需要的地方自己进行交换即可。反正这只是三行代码,所以应该不成问题:)

  • 本文向大家介绍Swift实现“或”操作符的3种方法示例,包括了Swift实现“或”操作符的3种方法示例的使用技巧和注意事项,需要的朋友参考一下 前言 我在看喵神的书的时候,发现书中有个练习(如下图),我觉得挺有意思,就把其中的“||”操作符实现了一下,跟大家分享一下。 使用Swift实现“||”操作符,我发现有三种方式,各自特点如下: 第一种:普通方式 第二种:性能优化 第三种:性能优化+写法优雅

  • 问题内容: 是否可以使用以下方法在Python中操作字符串? 对于以点表示法存储的任何字符串,例如: 有没有一种方法可以将字符串更改为以下内容: 基本上,删除到最后一个期间为止的所有内容。这样就变成了。 此外,是否有任何方法可以识别上一时期之后的情况?我要这样做的原因是我要使用。 所以,如果这是我能抢不知何故,所以我可以使用if语句,并说,如果最后一期(所以后面的字符串的一部分在这种情况下)是一个