在Java类中有很多getter和setter方法是很常见的,每个数据模型类变量一个。我知道许多IDE会为您创建这些,但我试图避免这种困惑,并且我的类中没有所有这些方法。那么,有没有什么方法可以在类外以只读方式访问变量(就好像它是publicfinal一样),同时在类或子类内部只保留写访问权(就好像它是私有(private)的或protected)。我想出的唯一伪解决方案是一个基类(或具有默认方法的接口(interface)),它有一个get(StringvariableName)方法,然后通过反射获取类的字段并返回适当的字段。缺点是,要使其工作,变量必须是公共(public)的,所以
所以我仍然无法使用Mockito。因此,假设我有以下类(请忽略它的逻辑或结构,这只是我从另一个类创建的一个简短示例,具有不同的名称等等。):publicclassRestaurant(@AutowiredprivateCustomerServicecustomerService;privateCustomerInputDataupdateCustomer(CustomerInputDatainputData){StringcustomerId=inputData.getID();Customercustomer=customerService.getCustomerById(custo
考虑带有抽象生成器的抽象数据类:abstractclassData{abstractstaticclassBuilder{privateStringone;protectedBuilder(){this.one=null;}publicfinalBuilderwithOne(finalStringvalue){this.one=value;returnthis;}protectedabstractTbuild();}privatefinalStringone;protectedData(finalBuilderbuilder){this.one=builder.one;}publicf
我正在尝试使用Spring和wx-xmlrpc一起。问题是XmlRpcClient有一个setConfig()不遵循JavaBean规范的方法:setter和getter不使用相同的类。所以当我有以下context.xml时,Spring会提示:它说:Bean属性“config”不可写或具有无效的setter方法。setter的参数类型是否匹配getter的返回类型?有没有办法覆盖它?我知道我可以为这个bean写一个特定的工厂,但在我看来这不是我最后一次发现这种问题。我经常使用质量可疑的遗留代码......能够使用SpringXML配置将是一个很大的帮助!
这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:ThreadsafetyinJavaclass我正在阅读Java并发实践,我遇到了一个令我困惑的例子。作者声明这个类不是线程安全的publicclassMutableInteger{privateintnumber;publicintgetInt(){returnnumber;}publicvoidsetInt(intval){number=val;}}而且他们还声明仅同步一种方法(例如setter)是不行的;你必须同步两者。我的问题是:为什么?同步setter不行吗?
我正在尝试使用lombokgetters和setters注释。据我所知,带注释的代码是在运行时生成的,而不是编译时生成的,那么如何借助自动生成的getter和setter来编写代码?比如我有这样一个类@lombok.Getters@lombok.SetterspublicclassMyLombokTesting{privateStringuserName;}但是如果这些注释不是在编写代码时生成的,那么这些注释有什么用...现在我想做这样的事情MyLombokTestingmyLombokTesting=newMyLombokTesting();Stringusername=myLomb
我一直在用java编程,最近我开始学习一些c++。在C++中,通常将setter参数设置为const,为什么我们在java中看不到这一点?我的意思是像这样创建一个setter有什么缺点吗:publicvoidsetObject(finalObjecto){this.o=o;}对比publicvoidsetObject(Objecto){this.o=o;}第一个应该强制对象参数o在整个set函数中保持不变,不是吗?编辑:最后一个参数将强制这不会发生:publicvoidsetName(Stringname){name="Carlos";this.name=name;}用户永远无法设置不
我想使用springsetter注入(inject)配置HttpParams,但HttpParams有两个参数setter(setParameter(Stringname,Objectobject))。有人知道在spring中配置它的方法吗?我能想到的最接近的是像你做一个List、Set或Property配置:http://www.mkyong.com/spring/spring-collections-list-set-map-and-properties-example/谢谢! 最佳答案 严格来说:有两个参数的setter不是s
在IntelliJIDEA中有没有办法在Lombok生成的setter方法中设置一个断点?这在某些调试场景中非常有用,例如查看何时从Hibernate等框架调用setter。其实生成的setter方法是在IntelliJIDEA的结构View中显示的(使用的是Lombok插件)。但是我还没有找到通过上下文菜单等设置断点的方法。 最佳答案 作为解决方法,您可以使用JavaFieldWatchpoint。在这种情况下,字段的每次访问/修改都会导致断点。这种方法的缺点是当您直接访问/修改字段或使用getter/setter方法时都会导致线
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion据说我们应该避免使用setter和getter。关于它有各种各样的想法,但根据我的说法,使用这些中断封装。为什么?因为它告诉世界有关对象内部的信息。例如:classPoint{privateintx;privateinty;voidsetx(intx){...}intgetx(){...}...}对象应该只公开行为,为客户端提供清晰的抽象。classPoint{privateintx;pr