草庐IT

flag_setter

全部标签

java - setter 和 getter 方法会破坏封装吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion据说我们应该避免使用setter和getter。关于它有各种各样的想法,但根据我的说法,使用这些中断封装。为什么?因为它告诉世界有关对象内部的信息。例如:classPoint{privateintx;privateinty;voidsetx(intx){...}intgetx(){...}...}对象应该只公开行为,为客户端提供清晰的抽象。classPoint{privateintx;pr

java - BeanUtils 不适用于链 setter

例如classtester{@TestpublicvoidtestBeanUtils()throwsInvocationTargetException,IllegalAccessException,NoSuchMethodException{Strangerstranger=newStranger();BeanUtils.setProperty(stranger,"name","wener");BeanUtils.setProperty(stranger,"xname","xwener");BeanUtils.setProperty(stranger,"yname","ywener")

java - 在 JSP/Java 中,如何用 s.th. 替换 getter/setter。更通用?

一直在我的bean中添加大量的getter/setter方法让我感到厌烦。有没有一种简单的方法可以使用注释来摆脱这种愚蠢的工作?或任何其他方式?第二个例子是我想要运行的简短版本,因为不需要封装我的成员(尽管在另一个上下文中它可能是必要的)。在我的现实世界中,我必须访问大约15个类,每个类中大约有10个数据成员,这将产生300个无用的setter/getter。示例TestPerson.java(有效):publicclassTestPerson{publicStringfirstName;publicStringlastName;publicTestPerson(){firstName

java - 如何使用属性名称识别 setter 方法?

我们可以使用属性名称找到setter方法名称吗?我有一个动态生成的map通过使用map中的键(即propertyName),我需要为对象调用适当的setter方法并传递map中的值(即propertyValue)。classA{Stringname;Stringage;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetCompany(){returncompany;}publicvoidsetCompany(Stringcompany){this.

java - Java 中 getter/setter 的命名约定

如果我有以下私有(private)成员:privateintxIndex;我应该如何命名我的getter/setter:getXindex()setXindex(intvalue)或getxIndex()setxIndex(intvalue)编辑:或getXIndex()setXIndex(intvalue);? 最佳答案 正确答案是getxIndex()setxIndex(intvalue)如果您希望根据JavaBeansAPIspecification的8.8:推断名称的大写部分将它们用作属性(例如,在JSP中通过${objec

java - jackson :忽略 setter/getter ,但不是@JsonView

我正在寻找仅在某些情况下序列化transient信息的可能性:@JsonInclude(Include.NON_NULL)@EntitypublicclassUser{publicstaticinterfaceAdminView{}...id,emailandothers...@TransientprivatetransientDetailsdetails;@JsonIgnore//Goal:ignoreallthetime,exceptnextline@JsonView(AdminView.class)//Goal:don'tignoreinAdminViewpublicDetail

java - 如何覆盖 Lombok Setter 方法

我在我的项目中使用了lombok,并使用@Setters和@Getters生成了Setters和GettersPOJO类之上的注释。我正在尝试覆盖属性的setter方法,但它不起作用我想检查JSON属性是Empty还是Null我想在Setter方法中设置默认值@Setter@Getter@NoArgsConstructor@AllArgsConstructor@Accessors(chain=true)@ToStringpublicclassDefaultModel{privateStringname;@Setter(AccessLevel.NONE)privateStringage;

java - 设置-XX :+PerfDisableSharedMem JVM flag to false 的效果

我提到了这个GC暂停issue;它建议将-XX:+PerfDisableSharedMemJVM标志设置为false。我的问题是当我们将此标志设置为false时会发生什么, 最佳答案 那么/tmp/hsperfdata*就不写了。其中,根据hotspot-runtime-dev讨论,将阻止一些性能监控命令行工具自动发现正在运行的虚拟机。如果明确指定PID,它们仍然可以附加到正在运行的进程。 关于java-设置-XX:+PerfDisableSharedMemJVMflagtofalse的

Java8 从类中检索 lambda setter

我正在尝试为私有(private)字段的setter获取lambda方法句柄,但由于某种原因,无法找到setter。这是我正在使用的功能接口(interface):@FunctionalInterfacepublicinterfaceISetter{voidset(Tobject,Rvalue);}这是用来获取setter的方法:publicISettergetSetter(Classclazz,StringfieldName,ClassfieldType)throwsThrowable{MethodHandles.Lookupcaller=MethodHandles.lookup()

java - 通过 getter 和 setter 更新 pojo 的通用方法

假设我有一个带有不同类型的getter和setter的POJO。我想编写一些通用算法,用于基于仅通过lambda定义getter和setter将数据从一个更新到另一个。我正在尝试以这种方式创建它privatestaticfinalMap,BiConsumer>ACCESSORS=newHashMap,BiConsumer>(){{put(Entity::getAreaCode,Entity::setAreaCode);}});然后我遍历所有将目标实体应用于它们的条目,如果getter的结果不为空,那么我想为其他实体应用相应的setter。但它不会工作,因为Object不能转换为Stri