草庐IT

Getter-Setter

全部标签

java - 自 Java 8 以来是否有使用 getter 和 setter 的新论点?

正如标题所说,在任何编程语言中,关于getter和setter的讨论总是很多,Java也是如此。问题如下:自从Java8发布以来是否有任何新的争论?一个已经存在的争论的例子是getter和setter封装状态,或者它们可以在不改变API的情况下改变实现。 最佳答案 是的,有!由于引入了Java8方法引用,正如其名称所示,它们只能与方法一起使用。考虑以下代码:classPerson{privateStringfirstName;privateStringlastName;publicPerson(finalStringfirstNam

java - 在 Java 中,是否有更好的方法来替代 getter 和 setter 方法?

在Java类中有很多getter和setter方法是很常见的,每个数据模型类变量一个。我知道许多IDE会为您创建这些,但我试图避免这种困惑,并且我的类中没有所有这些方法。那么,有没有什么方法可以在类外以只读方式访问变量(就好像它是publicfinal一样),同时在类或子类内部只保留写访问权(就好像它是私有(private)的或protected)。我想出的唯一伪解决方案是一个基类(或具有默认方法的接口(interface)),它有一个get(StringvariableName)方法,然后通过反射获取类的字段并返回适当的字段。缺点是,要使其工作,变量必须是公共(public)的,所以

java - Java Protocol Buffers 能否在重复字段的列表 getter 上返回 null?

假设您有一个重复字段。messageFoo{optionalint32val=1;}messageBar{repeatedFoofoo=1;}这将生成方法ListgetFooList()有没有getFooList会返回null的情况?或者它是否已经返回一个列表,即使它是空的? 最佳答案 不,不存在返回null的情况。事实上,Javaprotobuf生成的类中的任何字段访问器都不会返回null;如果该字段不存在,它们总是返回默认值。同样,setter不允许您设置null。 关于java-J

java - 如何处理来自 Mocks 的 Setter/Getter 方法?

所以我仍然无法使用Mockito。因此,假设我有以下类(请忽略它的逻辑或结构,这只是我从另一个类创建的一个简短示例,具有不同的名称等等。):publicclassRestaurant(@AutowiredprivateCustomerServicecustomerService;privateCustomerInputDataupdateCustomer(CustomerInputDatainputData){StringcustomerId=inputData.getID();Customercustomer=customerService.getCustomerById(custo

java - Hibernate/JPA 中注释字段或 getter 方法之间的性能差异

我很好奇是否有人对使用私有(private)字段而不是公共(public)getter方法注释实体之间的性能差异有任何确切的数字。我听说人们说字段速度较慢,因为它们被称为“通过反射”,但getter方法也是如此,不是吗?Hibernate需要先将该字段的可访问性设置为true,然后再尝试读取它,我可以看到这有一些轻微开销。然而,这不会在session范围内的类级别完成,或者可能只在读取配置和构建SessionFactory时完成一次吗?只是好奇这是否是一个神话,或者是否真的存在;我个人认为注释字段更具可读性。 最佳答案 将5000条

java - 如何定义构建器模式层次结构,其中可以按任何顺序调用 setter

考虑带有抽象生成器的抽象数据类:abstractclassData{abstractstaticclassBuilder{privateStringone;protectedBuilder(){this.one=null;}publicfinalBuilderwithOne(finalStringvalue){this.one=value;returnthis;}protectedabstractTbuild();}privatefinalStringone;protectedData(finalBuilderbuilder){this.one=builder.one;}publicf

java - 如何使用 Spring 在不遵循 Java bean 规范的 setter 中注入(inject)对象?

我正在尝试使用Spring和wx-xmlrpc一起。问题是XmlRpcClient有一个setConfig()不遵循JavaBean规范的方法:setter和getter不使用相同的类。所以当我有以下context.xml时,Spring会提示:它说:Bean属性“config”不可写或具有无效的setter方法。setter的参数类型是否匹配getter的返回类型?有没有办法覆盖它?我知道我可以为这个bean写一个特定的工厂,但在我看来这不是我最后一次发现这种问题。我经常使用质量可疑的遗留代码......能够使用SpringXML配置将是一个很大的帮助!

Java 并发 - 为什么同步 setter(而不是 getter)不能使类线程安全?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:ThreadsafetyinJavaclass我正在阅读Java并发实践,我遇到了一个令我困惑的例子。作者声明这个类不是线程安全的publicclassMutableInteger{privateintnumber;publicintgetInt(){returnnumber;}publicvoidsetInt(intval){number=val;}}而且他们还声明仅同步一种方法(例如setter)是不行的;你必须同步两者。我的问题是:为什么?同步setter不行吗?

Java - 在 getter 方法中克隆属性

各位,我正在阅读此处提到的Java最佳编码实践http://viralpatel.net/blogs/most-useful-java-best-practice-quotes-java-developers/第二个引用说,Quote2:Nevermakeaninstancefieldsofclasspublic我同意这是绝对正确的,但我因为遵循作者在这句话下面几行的建议而陷入困境。他说,privateString[]weekdays={"Sun","Mon","Tue","Thu","Fri","Sat","Sun"};publicString[]getWeekdays(){retu

java - 如何使 lombok 注释真正适用于 getter 和 setter

我正在尝试使用lombokgetters和setters注释。据我所知,带注释的代码是在运行时生成的,而不是编译时生成的,那么如何借助自动生成的getter和setter来编写代码?比如我有这样一个类@lombok.Getters@lombok.SetterspublicclassMyLombokTesting{privateStringuserName;}但是如果这些注释不是在编写代码时生成的,那么这些注释有什么用...现在我想做这样的事情MyLombokTestingmyLombokTesting=newMyLombokTesting();Stringusername=myLomb