gpt4 book ai didi

Java Bean 约定

转载 作者:行者123 更新时间:2023-11-30 09:26:58 27 4
gpt4 key购买 nike

Java Bean 的约定之一是:

setter 的返回类型必须是 void

或者至少大多数人是这么说的。我的问题是:它真的必须无效吗?我喜欢返回 "this" 而不是 "void" 因为我可以像这样将方法链接在一起:

student.setName("Tom").setAge(15);

如果我返回“this”而不是“void”,那么 Spring 容器或 Servlet 容器或任何使用 Java Beans 的东西会有问题吗?

最佳答案

是的,setter 的返回类型必须void,以便java.beans.Introspector 将其识别为bean 属性并为其返回一个 PropertyDescriptor。仅直接检查方法名称和参数类型的 API 将使用非 void setter ,但任何依赖于 Introspector 的 API 都不会。

解决此问题的一个很好的例子是 Amazon Web Services SDK,它提供了普通的 public void setSomething 方法(成为有效的 Java Bean)和流畅的 public X withSomething 返回 this 的方法。

Student s = new Student().withName("Tom").withAge(15);

关于Java Bean 约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787394/

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