草庐IT

Getters-Setter

全部标签

java - 枚举是否允许在 Java 中有 setter?

我有一个enum,它有一个参数(字段),它是一个String。我可以为这个领域设置二传手吗?publicenumBlah{Monday("a"),Tuesday("b");}privatefinalStringletter;Blah(Stringletter){this.letter=letter;}我可以做以下事情吗?publicStringsetLetter(Stringletter){this.letter=letter;} 最佳答案 您需要删除该字段的final修饰符以使其可设置:publicenumBlah{Monday(

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 - 在 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 - 当 @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 - 在 getter 链之后安全地调用 setter,例如 foo.getX().getY().setZ(...);

如何在getter链之后安全地调用setter,例如foo.getX().getY().setZ(...);?例如,假设我有一个嵌套的POJO,我希望能够设置一个嵌套对象的字段。Foofoo=...foo.getX().getY().setZ(...);我希望行为是这样的,如果X和Y不存在,那么它们会自动创建;否则它会重用现有对象。换句话说,我希望它的行为等同于Foofoo=...Xx=foo.getX();if(x==null){x=newX();foo.setX(x);}Yy=x.getY();if(y==null){y=newY();x.setY(y);}y.setZ(...);

java - JAXB 在解码对象时不调用 setter

我正在使用JAXB2.0JDK6将XML实例解码为POJO。为了添加一些自定义验证,我在属性的setter中插入了一个验证调用,但尽管它是私有(private)的,但似乎解码器并没有调用setter,而是直接修改了私有(private)字段。对我来说至关重要的是,每次解码调用都会针对此特定字段进行自定义验证。我该怎么办?代码:@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="LegalParams",propOrder={"value"})publicclassLegalParams{privatestaticfinalLogger