草庐IT

Getter-Setter

全部标签

java - 如何在 setter 在 Java 中工作时同步 getter

我有一个多线程应用程序,它使用一个提供列表的静态类。我希望静态类的getter可以自由工作(不相互同步)但是当setter工作时我希望所有getter都被锁定并等待setter的工作完成。我不想在一起调用setter/getter时锁定setter/getter,因为这会大大降低性能。Getter每天被调用1,000,000次,而setter每天只应该工作一次。 最佳答案 考虑使用java.util.concurrent.locks.ReadWriteLock实现,例如ReentrantReadWriteLock(参见javadoc

c# - C# 速记 getter 和 setter

C#中的Setters和Getters是如何实现封装的?说到这些setter和getter,我并不陌生,我有编程背景,特别是java。在Java中,你可以像这样使用setter和getterpublicclassPerson{privateStringfName;publicvoidsetName(StringsomeName){fName=someName;}publicStringgetName(){returnfName;}}publicclassTest{publicstaticvoidmain(String[]args){Personp=newPerson();p.setNa

java - 在JavaFX中,是否应该使用CSS或setter方法来更改UI节点上的属性?

Closed.Thisquestionisopinion-based。它当前不接受答案。想要改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。5年前关闭。Improvethisquestion有两种方法可以在我的UI节点上设置属性(标签,按钮等)我可以这样使用:Buttonb=newButton("Sample");b.setTextFill(Paint.valueOf("red"));b.setTextAlignment(TextAlignment.CENTER);或者我可以做一些等效的事情:Buttonb=newButton("Sample");b.s

java - 组合枚举并使用 getter 返回指定的枚举

假设我有两组不同的枚举:水果和蔬菜。publicstaticenumFruits{APPLE("Apple"),PEAR("Pear");//constructor//getName()...}publicstaticenumVegetables{CARROT("Carrot"),LETTUCE("Lettuce");//constructor//getName()...}我在JComboBox中显示所有这些。在有人选择了一些东西之后,我想使用一个getter方法来取回Enum。对于单个枚举,我会做类似的事情:publicstaticFruitsgetEnum(Stringname){

java - 在 Eclipse 中重命名 getter 和 setter。捷径?

这个问题在这里已经有了答案:Renamingaccessor/mutatormethodsinEclipse?(2个答案)关闭9年前。有人知道在我更改变量名称时重命名变量的getter和setter的方法吗?eclipse中的重命名功能非常有用,但是,当我需要重命名一些变量时,之后我需要手动固定getter和setter的名称。

java - JAXB 编辑列表 setter/getter ?

我有XSD文件形式的数据模型,然后使用命令行从xjc生成相应的Java文件。当我从XSD生成JAXB类时,List类型元素获取为它们生成的getter方法(没有相应的setter方法),如下所示:publicListgetElement3(){if(element3==null){element3=newArrayList();}returnthis.element3;}几乎每个从List类型的XSD生成的文件中都有很多字段。用例:现在,我不希望通过null检查生成getter。我的应用程序代码具有经常调用每个字段的getter的逻辑,这导致它们初始化为emptyList。然后在编码时

java - Hibernate:无法通过 com.mahlzeit.datamodel.address.City.id 的反射 setter 设置字段值

我正在尝试使用@ManyToOne关系将City添加到Country。问题是我在尝试保存我的实体时遇到了org.hibernate.PropertyAccessException。privatevoidaddAddressData(){Sessionsession=sessionFactory.openSession();session.beginTransaction();ListcountryList=newArrayList();Countryaustria=newCountry("at");countryList.add(newCountry("de"));countryLis

java - Lombok @Getter 和 Collections 的副本

在List字段上使用@Getter工作正常,但是在尝试升级到Java8时我遇到了ConcurrentModificationException,因为getter生成Lombok不执行字段的复制,如果您希望防止实例状态的外部修改,这是必不可少的。关于如何让Lombok在getter上复制Collection的任何想法,或者我只能自己编写吗? 最佳答案 来自@Getterand@Setter文档:Youcanannotateanyfieldwith@Getterand/or@Setter,toletlombokgeneratethede

java - 当 @Context 用于 setter/field/constructor 注入(inject)时,在 Jersey 过滤器之前调用 HK2 工厂

我已经能够按照Howtoinjectanobjectintojerseyrequestcontext?从过滤器注入(inject)我的Jersey资源.这使我能够成功地注入(inject)方法参数:@GETpublicResponsegetTest(@ContextMyObjectmyObject){//thisworks但是,对于setter/field/constructor注入(inject),HK2工厂在Jersey过滤器被调用,这意味着provide()方法返回null:@OverridepublicMyObjectprovide(){//returnsnullbecause

java - Lombok 中带有@Builder 或@Getter 注释的默认字段值

我正在使用Lombok@Builder注释,但我希望某些String字段是可选的并且默认为""避免NPE。是否有捷径可寻?我找不到任何东西。或者,自定义@Getter以在变量为null时返回默认值的方法。 最佳答案 从版本v1.16.16开始,他们添加了@Builder.Default。@Builder.Defaultletsyouconfiguredefaultvaluesforyourfieldswhenusing@Builder.示例:@Setter@Getter@BuilderpublicclassMyData{privat