草庐IT

java - 实例变量的 setter 和 getter 的 Junit 测试

为对象内的实例变量的setter和getter创建测试用例时。什么是最好的方法?在这里,我在测试中使用了get和set方法。这会是糟糕的测试策略吗?/***TestofsetFlightNumbermethod,ofclassFlight.*/@TestpublicvoidtestSetFlightNumber(){System.out.println("setFlightNumber");intflightNumber=1000;Flightinstance=newFlight();instance.setFlightNumber(flightNumber);//TODOreview

java - 多次调用 getter 还是调用一次并分配给变量?

假设我有类:publicclassAge{privateintage;publicintgetAge(){returnthis.age;}}在我的主类中,我多次调用getAge()方法。所以我想知道是调用这么多次还是调用一次并将其分配给某个变量并使用该变量是否明智。哪个最好,为什么? 最佳答案 这很可能是您在知道需要之前就进行了优化的情况。该值只是一个整数,因此如果将值存储在多个位置,它不会占用大量内存。同时,它是一个非常简单的方法调用,执行起来不会花费太多时间。以您认为最易读的方式编写。然后,在您拥有可靠的代码版本后,您可以使用性

java - 通过反射获取bean属性getter或setter?

假设我有一个类型为的对象的句柄,配置告诉我它有一个int类型的bean属性,名称为age。如何检索此文档的setter/getter?有没有比在age中添加“get”并将“a”大写,并通过反射寻找该名称的方法更好的方法? 最佳答案 看看java.beans.Introspector.此类允许您获取类的属性列表。如果您知道属性名称,您可以调用Methodgetter=newPropertyDescriptor(propertyName,beanClass).getReadMethod();另请参阅:java.beans.Propert

java: `volatile` 带有 getter 和 setter 的私有(private)字段

如果在多线程中使用实例化,我们是否应该将私有(private)字段声明为volatile?在EffectiveJava,有一个例子,如果没有volatile,代码就无法工作:importjava.util.concurrent.TimeUnit;//Broken!-Howlongwouldyouexpectthisprogramtorun?publicclassStopThread{privatestaticbooleanstopRequested;//works,ifvolatileisherepublicstaticvoidmain(String[]args)throwsInter

java - 无法通过反射 getter 获取字段值

我正在尝试通过外键过滤结果集:createCriteria(Person.class).add(Restrictions.ne("position",1L)).list()但是得到这个异常:org.hibernate.PropertyAccessException:couldnotgetafieldvaluebyreflectiongetterofcom.example.model.Position.id以下是必要的JPA实体(已缩减为必要的字段):@Entity@TablepublicclassPerson{@Id@GeneratedValueprivateLongid;@ManyT

java - 不明白@ConstructorProperties

关于@ConstructorPropertiesDocumentation说“构造函数上的注释,显示该构造函数的参数如何对应于构造对象的getter方法”。它给出了一个模棱两可的例子,因为变量名与参数相同。我真的不明白为什么@ConstructorProperties({"x","y"})引用gettersgetX()和getY()。x和y的大小写与注释不一致。所以为了阐明这段代码中构造函数的注解应该是什么:publicclassPoint{publicPoint(inta,intb){this.c=a;this.d=b;}publicintgetCc(){returnc;}publi

java - 是否允许使用静态 setter/getter?

我正在开发一个Web应用程序,因为有一个名为getData()的实用方法,我将其设为静态。到目前为止一切正常,但是这个名为getData()的静态方法需要来自setter和getter的一些数据。所以现在我的问题是我们可以将setter/getter设为静态吗? 最佳答案 如果您的属性是static,那么getter和setter也将是static。这完全取决于您想做什么。 关于java-是否允许使用静态setter/getter?,我们在StackOverflow上找到一个类似的问题:

java - 在 JPA 实体 getter 中初始化字段是好习惯吗?

在POJOJavabean中,这样的代码是有益的,尤其是对于集合:classPOJO{privateCollectioncol;publicCollectiongetCol(){if(col==null)col=newSomeCollection();returncol;}}它使得使用POJO的代码可以调用pojo.getCol().isEmpty()而不需要额外的空检查,从而使代码更清晰。假设POJO类是一个JPA实体,这样做仍然安全吗?通过将集合从null初始化为空集合,持久数据不会更改,但我们仍在修改对象,因此持久性提供程序可能会在刷新持久性上下文时产生一些副作用。我们有什么风险

java - 如果列表为 null 使用 lombok getter 初始化列表?

我目前正在替换我所有的标准POJO,以将Lombok用于所有样板代码。我发现自己为列表保留getter,因为如果列表尚未初始化,我想返回一个空列表。也就是说,我不希望getter返回null。如果有一些我不知道的lombok魔法可以帮助我避免这样做?生成代码示例privateListlist;publicObjectgetList(){returnlist;}我想要的是:privateListlist;publicObjectgetList(){if(list==null){returnnewArrayList();}returnlist;} 最佳答案

java - 如何自定义 Eclipse 的 getter 和 setter 生成?

如何配置Eclipse以生成带有参数变量前缀的getter和setter?例子:privateStringsomeVariable;publicvoidsetSomeVariable(StringaSomeVariable){this.someVariable=aSomeVariable;} 最佳答案 您可以通过转到首选项>java>代码样式并选择参数然后编辑来使用前缀更新所有生成的变量。您可以为所有生成的变量名称添加前缀/后缀。 关于java-如何自定义Eclipse的getter和s