关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion始终建议使用getter/setter来访问私有(private)变量。为什么将它们声明为公开并访问它们不是一个更好的主意。无论如何,我们正在使用getter和setter访问它?
标题说明了一切。我想知道在字段/getter/setter上放置JAXB注释(如@XmlElement)之间的主要区别是什么。在我看来(在简单的情况下)这无关紧要。例如让我们拿这个classA{privateStringa;publicStringgetA(){returna;}publicvoidsetA(Stringa){this.a=a;}}现在在我看来,将@XmlElement放在成员字段或getter/setter上并不重要。它只是编码好。当我需要有所作为并且重要时,是否有任何用例?当我去解码这个(xml回到A)时,JAXB具体做了什么?我正在使用JAXBMOXy实现谢谢
假设我在一个类中有一个privateArrayList或一个LinkedList,我永远不会为它分配新的引用,或者换句话说,这永远不会发生:myLinkedList=anotherLinkedList;这样我就不需要使用setMyLinkedList(anotherLinkedList)。但是!我需要向其中添加元素或从中删除元素。我是否应该编写一种新的setter来完成adding而不是setting的任务,比如myLinkedList.add(someElement)?或者在不违反封装原则的情况下,使用getter可以做到这一点吗?getMyLinkedList().add(some
我正在尝试使用Hibernate来持久化一个如下所示的类:publicclassItemimplementsSerializable,Comparable{//ItemidprivateIntegerid;//DescriptionofitemininventoryprivateStringdescription;//Numberofitemsdescribedbythisinventoryitemprivateintcount;//CategoryitembelongstoprivateStringcategory;//DateitemwaspurchasedprivateGrego
这个问题是关于良好的编程实践和避免潜在的漏洞。我读了JoshuaBloch的EffectiveJava,我想知道的是:为什么我应该考虑在我的不可变类中的getter方法中制作防御性副本,其中没有修改器?第二:除了private之外,我为什么还要将我的字段设置为final?这仅与性能有关(与安全性无关)吗? 最佳答案 我相信这种情况可以证明这种说法:publicclassImmutable{privatefinalStringname;privateDatedateOfBirth;publicImmutable(Stringname,
我可以在不显式定义getter的情况下将@JsonIgnore与来自lombok的@Getter注释一起使用吗,因为我必须在序列化对象时使用此JsonIgnore,但在反序列化时,必须忽略JsonIgnore注释,因此我的对象中的字段不能是无效?@Getter@SetterpublicclassUser{privateuserName;@JsonIgnoreprivatepassword;}我知道,只要在password的getter上定义JsonIgnore,我就可以防止我的密码被序列化,但为此,我必须明确定义我不想要的getter。请有任何想法,我们将不胜感激。
我正在用boost-python包装C++类,我想知道是否有比我现在做的更好的方法。问题是这些类有同名的getters/setters,似乎没有一种简单的方法可以用boost-python包装它。这是问题的简化版本。给定这个类:#includeusingnamespaceboost::python;classFoo{public:doublex()const{return_x;}voidx(constdoublenew_x){_x=new_x;}private:double_x;};我想做这样的事情:BOOST_PYTHON_MODULE(foo){class_("Foo",init(
我正在尝试为我打算在我的数据库模式中使用的混合类定义简单的getter/setter方法:fromsqlalchemyimportColumn,Integer,create_enginefromsqlalchemy.ormimportsynonym,scoped_session,sessionmakerfromsqlalchemy.ext.declarativeimportdeclarative_base,declared_attrengine=create_engine('sqlite:///')Base=declarative_base(bind=engine)Session=sc
我对python中的属性有点困惑。考虑以下代码classA:@propertydefN(self):print("Agetter")returnself._N@N.setterdefN(self,v):print("Asetter")self._N=vdef__init__(self):self._N=1classB:@propertydefN(self):print("Bgetter")returnself.a.N@N.setterdefN(self,v):print("Bsetter")self.a.N=vdef__init__(self):self.a=A()if__name__
我是Python的新手,所以如果这里有任何明显不好的地方,请指出。我有这个字典的对象:traits={'happy':0,'worker':0,'honest':0}每个特征的值应该是1-10范围内的整数,并且不允许添加新特征。我想要getter/setter,这样我就可以确保这些约束得到保留。下面是我现在如何制作getter和setter:defgetTrait(self,key):ifkeynotinself.traits.keys():raiseKeyErrorreturntraits[key]defsetTrait(self,key,value):ifkeynotinself.