gpt4 book ai didi

java - 这种语法格式对 Java 来说正常吗?

转载 作者:行者123 更新时间:2023-11-29 08:28:58 25 4
gpt4 key购买 nike

Google Protocol Buffers Tutorial 中找到这段 Java 代码块:

Person john =
Person.newBuilder()
.setId(1234)
.setName("John Doe")
.setEmail("jdoe@example.com")
.addPhones(
Person.PhoneNumber.newBuilder()
.setNumber("555-4321")
.setType(Person.PhoneType.HOME))
.build();

我用 Java 编程已经有一段时间了,但我不熟悉这种形式。我理解 Person John = Person.newBuilder(),但是 .setId.setName 等不是 newBuilder 的参数,也不是彼此之间终止。也许这只是有趣的缩进。另外,.setId(1234) 隐含了 john.setId(1234) 吗?

最佳答案

这是一种称为“流畅接口(interface)”的模式,通常在构建器中用于支持您问题中的代码流。

简单的技巧是从 setter 返回“this”,因此可以直接链接新的方法调用。它与语法无关,在这方面,它只是组织代码的另一种方式。

class Foo {
public Foo() {}

public Foo a () { /* do something and */ return this; }
public Foo b () { /* do something else and */ return this; }
}

new Foo().a().b().a();

这本质上是相同的模式。

关于java - 这种语法格式对 Java 来说正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49884530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com