草庐IT

Getters-Setter

全部标签

java - 使用java反射调用setter方法

我需要使用反射来调用一个类的setter方法,代码如下:try{Methodmethod=myObj.getClass().getMethod("set"+fieldName,newClass[]{value.getClass()});method.invoke(myObj,value);}catch(Exceptionex){ex.printStackTrace();}value是一个ArrayList,setter方法如下:publicvoidsetNames(Listnames){this.names=names;}运行此代码时抛出java.lang.NoSuchMethodEx

java - 在使用 JPA 映射类时,为什么有人要在 getter 或 setter 上添加注释?

主题说明了一切......到目前为止,我认为人们在getter和/或setter上声明注释没有任何优势。对我来说,这只是将注释分散到类中的缺点,这会使类更不可读。在字段上添加注释明显减少了需要帮助时发布的代码量。不过,这只是一个很小的优势。但是在方法上添加注释对我来说毫无用处。 最佳答案 在方法上添加注释会强制JPA通过方法访问属性。当对象的内部状态与数据库模式不同时,这是有意义的:@EntitypublicclassEmployee{privateStringfirstName;privateStringlastName;@Col

java - Dagger 2 : @Component. Builder 缺少所需模块或组件的 setter : [appi. example.com.dagger.AppModule]`

我正在配置新的DaggerAndroid模块,但出现此错误这是我的组件:@AppScope@Component(modules={AppModule.class,NetModule.class})publicinterfaceAppComponent{@Component.BuilderinterfaceBuilder{@BindsInstanceBuilderapplication(ExampleApplicationapplication);@BindsInstanceBuilderappModule(AppModuleappModule);@BindsInstanceBuilde

java - Java构造函数和简单setter中参数命名的最佳实践

Java中的参数对于简单的构造函数和setter是否存在可接受的标准约定?(I'veseentheanswerforC++,但两个社区的做法通常不同)假设我有一个带有foo字段的C类。我经常看到以下三个选项:1)使用带下划线的实际字段名称:publicC(Typefoo_){foo=foo_;}publicvoidsetFoo(Typefoo_){foo=foo_;}2)使用实际的字段名,设置中使用“this”即可:publicC(Typefoo){this.foo=foo;}publicvoidsetFoo(Typefoo){this.foo=foo;}3)完全不一致的事情,例如:p

java - 'public static final' 还是带有 setter/getter 的 'private static final'?

在Java中,变量应该保持私有(private)以实现更好的封装,但是静态常量呢?这个:publicstaticfinalintFOO=5;结果与此等价:privatestaticfinalintFOO=5;...publicstaticgetFoo(){returnFOO;}但哪种做法更好? 最佳答案 不直接在代码中使用常量的原因之一。假设FOO稍后可能会更改(但仍保持不变),例如publicstaticfinalintFOO=10;。只要没有人愚蠢到直接硬编码值,就不应该破坏任何东西吗?没有。Java编译器会将上面的Foo等常量

Java 约定 : use getters/setters WITHIN the class?

我的教授非常强调通过始终使用访问器和修改器来访问私有(private)实例变量来防止隐私泄露;但是,我必须在类中使用类的getter/setter吗?例如,如果我有以下类(class):publicclassPerson{privateStringname;privateintage;}我想为它写一个toString()方法。我可以写吗:publicStringtoString(){returnname+""+age;}或者我需要这样做吗:publicStringtoString(){returnthis.getName()+""+this.getAge();}

Java Getter 和 Setter

有没有更好的标准方法在Java中创建getter和setter?必须为每个变量显式定义getter和setter是非常冗长的。有更好的标准注释方法吗?Spring有这样的东西吗?C#也有属性。 最佳答案 我不确定你是否认为它是“标准的”,但是ProjectLombok解决了这个问题。他们使用注解来代替Java的大部分冗长。有些人正在寻找替代的Java兄弟语言,例如Groovy或Scala。恐怕需要几年时间——如果有的话——JSR会找到一种“标准化”的方式来在Java中“修复”这个问题。

java - 为什么 GSON 使用字段而不是 getter/setter?

为什么GSON使用ONLY字段(私有(private)、公共(public)、protected)?有没有办法告诉GSON只使用getter和setter? 最佳答案 一般来说,当您序列化/反序列化对象时,您这样做是为了得到对象状态的精确副本;因此,您通常希望规避OO设计中通常需要的封装。如果您不规避封装,则可能无法最终得到一个在反序列化之后具有与序列化之前完全相同的状态的对象。此外,请考虑您不想为特定属性提供setter的情况。如果您正在使用getter和setter,序列化/反序列化应该如何操作?

Spring循环依赖使用setter

我已经读过,为了避免循环依赖,我可以在setter上使用@Autowired而不是构造器。如果是这样,为什么会失败?@ComponentprivatestaticclassA{@AutowiredpublicA(Bb){}}@ComponentprivatestaticclassB{privateAa;publicB(){}@AutowiredpublicvoidsetA(Aa){this.a=a;}}如果我将A类定义为类似于B的类,一切正常,但上面的应该已经可以工作了,那为什么不行呢?我处于无法摆脱A类的构造函数中的依赖关系的情况。在这种情况下我该怎么办?编辑:我正在使用Spring

Spring setter 方法顺序

有什么方法可以让我在springbean上设置setter方法的顺序。例如:在上述场景中,value1的setter在value2的setter之前被调用。当我如下颠倒属性顺序时Value2的setter方法在value1之前被调用。有什么优雅的方法可以强制我们总是在value2之前调用value1的setter。一种方法是在value2的setter中抛出异常......向用户询问所需的顺序。有没有其他办法? 最佳答案 我猜你在setter中做了一些逻辑,在设置value2时你假设value1可用。而不是依赖这样的顺序,你应该使用