草庐IT

Getters-Setter

全部标签

java - 如何使用反射定义动态的setter和getter?

我在资源包的循环中有一个类的字符串、字段名称和类的列表。我创建了一个对象,然后使用循环我想为该对象设置值。例如,对于对象Foof=newFoo();使用参数param1,我有字符串“param1”,我想以某种方式将“set”与它连接起来,例如“set”+“param1”,然后将其应用于f实例:f.setparam1("value");setter/getter也一样。我知道反射(reflection)会有所帮助,但我做不到。请帮忙。谢谢! 最佳答案 你可以这样做。您可以使此代码更通用,以便您可以将其用于在字段上循环:ClassaCl

java - Eclipse with Lombok - 搜索 getter 和 setter 用法

我将Eclipse与Lombok结合使用。getter和setter已正确生成,但它们在类主体中不可见(我知道这就是重点)。但是,正因为如此,我无法从类内部搜索getter或setter的用法。因此,如果我想检查什么和在哪里实际设置了一个字段的特定值,我必须对getter名称执行一个字符串搜索,这很慢并且可能会给出不好的结果(对于另一个类中的同名字段,例如)。Eclipse中有没有一种方法可以为lombok生成的方法查找字段的getter/setter用法? 最佳答案 您可以使用大纲View:在大纲View中右键单击方法,然后使用“

Java:不可变类的伪setter方法

假设我在Java中有一个具有不可变数据的Foo类:classFoo{finalprivateintx;publicintgetX(){returnthis.x;}finalprivateOtherStuffotherstuff;publicFoo(intx,OtherStuffotherstuff){this.x=x;this.otherstuff=otherstuff;}//lotsofotherstuff...}现在我想添加一个实用程序方法来创建具有相同状态但具有新值x的“同级”值。我可以称它为setX():classFoo{...FoosetX(intnewX){returnne

java - 为什么在 CDI 中使用构造函数而不是 setter 注入(inject)?

我在SO上找不到任何合理的答案,所以我希望它不是重复的。那么为什么我应该更喜欢setter或构造函数注入(inject)而不是简单的@InjectMyBeanbean;如果你需要在类初始化期间对注入(inject)的bean做一些事情,我会得到构造函数注入(inject)的用法,比如publicvoidMyBean(@InjectOtherBeanbean){doSomeInit(bean);//Idon'tneedtouse@PostConstructnow}但是,它和@PostConstruct方法几乎一样,我根本没有得到setter注入(inject),这不就是Spring和其他

java - Java 中的 Setter 约定(返回 void 或 this)

我编写Java已经将近一年了,我看到了人们实现setter的两种不同约定。为了说明这一点,这里有两个约定的例子。(我也很想知道这两种模式的简明名称)使用第一约定的类,从它们的“设置”方法中不返回任何内容。像这样:publicclassClassic{privatedouble_x;privatedouble_y;publicClassic(){x=0;y=0;}publicvoidsetX(doubled){//orbooleanwithatypecheckoninputx=d;}publicvoidsety(doubled){y=d;}}使用替代约定的类从它们的setter方法中返回

java - 如何在 emacs 中为 Java 类实现 'generate getter/setter'?

有时我怀念使用IDE的懒惰,它让我只编写Java类的属性,然后让IDE生成所需的getter/setter。Emacs能做到吗?目前我只是从上一行复制粘贴一对getter/setter,然后复制粘贴并修改它。这很简单,但是,让编码更有趣一点:) 最佳答案 您特别询问了有关生成getter/setter对的问题。您可以编写elisp来执行此操作。但研究更通用的解决方案可能会很有趣。为了一般地解决这个问题,我使用ya-snippet.这个名字指的是“YetAnotherSnippetpackage”,所以你可以确定问题已经解决了。但我发

java - 需要重构 eclipse 中的字段名称,这也应该更改 getters/setters

我需要在Eclipse中进行大量重构(实际上需要更改字段名称)。它正在改变所有的事件,字段的引用。但有一件事是它不会更改根据以前的名称生成的getter/setter名称。我们是否有任何插件来执行此操作或需要完成任何配置更改? 最佳答案 是的,在Galileo中,“重命名”对话框有一个用于更改字段的setter和getter的选项-seehere.(或者,您可以在选择字段后使用ALT+SHIFT+R两次)在伽利略之前,你必须做3个Action而不是一个(还不错) 关于java-需要重构e

java - 如果返回值是可变的,为什么要使用 getter 和 setter?

在C++中,私有(private)数据成员的getter和setter非常有用,因为它能够通过const返回值控制可变性。在Java中,如果我理解正确(如果我弄错了请纠正我),在getter上指定final不会那样工作。一旦调用者通过getter接收到数据成员引用,它就可以修改它,尽管它是私有(private)的......如果是这样(如果我在这里有严重的误解,请纠正我),为什么不声明数据成员public并简化事情呢? 最佳答案 在java中使immutable返回值是或者返回已经immutable对象类型(比如String)或者返

java - POJO 类中 "is"变量 getter/setter 的正确语法是什么?

如果一个类包含一个名为“blah”的变量,那么标准的getter/setter语法显然是getBlah()和setBlah()。但是,如果我有一个带有名为isBlah的变量的POJO类,我会使用:publictypegetIsBlah(){returnisBlah;}publicsetIsBlah(typeisBlah){this.isBlah=isBlah;}还是这样?publictypeisBlah(){returnisBlah;}publicsetBlah(typeblah){this.isBlah=blah;}第一种似乎更严格地符合POJO约定,但第二种类型是IntelliJ生

Java setter 和 getter

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion始终建议使用getter/setter来访问私有(private)变量。为什么将它们声明为公开并访问它们不是一个更好的主意。无论如何,我们正在使用getter和setter访问它?