在Scala中使用@BeanProperty而不是定义getter / setter函数是一种好习惯吗?

法哈德·西迪基

在可以公开访问/修改的类中定义数据成员

var _foo: Int = _
def foo_(foo: Int) = _foo = foo    // setter function
def foo = _foo                     // getter function

用注解转换它是一个好习惯@BeanProperty吗?

import scala.reflect.BeanProperty
@BeanProperty var foo: Int = _

何时使用此注释,何时不使用?

特拉维斯·布朗

第一个示例中有一些冗余,因为定义一个var已经导致生成吸气剂和吸气剂。例如,如果我们编译此类:

class Foo {
  var foo: Int = _
}

然后javap -private Foo显示以下内容:

public class Foo {
  private int foo;
  public int foo();
  public void foo_$eq(int);
  public Foo();
}

除非您有需要适应getter或setter的自定义逻辑(在这种情况下,考虑使用更具描述性的方法名称通常是个好主意),否则您无需手动定义它们。

scala.reflect.BeanProperty注释(或scala.beans.BeanProperty2.11)不会对产生任何影响foo()foo_$eq(int)方法,编译器会生成这些对var foo: Int您是否使用注释。注释只是为这些方法添加getFoosetFoo别名。如果需要这些别名,请使用批注,如果不需要,请不要使用。

总结最佳做法:

  1. 不要使用var
  2. 如果必须使用var,则可以(并且应该)避免定义自己的getter和setter。
  3. BeanProperty仅当您正在实现带有getFoosetFoo-style方法签名的接口时,或者期望从Java调用代码(使用诸如这样的名称的方法foo_$eq很不方便)调用代码时,使用注释

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在函数定义之前立即导入依赖项是一种好习惯吗?

来自分类Dev

在dataProvider中定义期望是一种好习惯吗

来自分类Dev

使用外部函数中的变量是一种好习惯吗?

来自分类Dev

使用WCF简化配置是一种好习惯吗?

来自分类Dev

经常使用instanceof是一种好习惯吗?

来自分类Dev

大量使用本地存储是一种好习惯吗?

来自分类Dev

使用幻数是一种好习惯吗?

来自分类Dev

在代码文件上定义函数但不在标头上声明函数是一种好习惯吗?

来自分类Dev

删除函数,而不是使用弃用的注解使其保留在那里是一种好习惯吗?

来自分类Dev

在返回的值是作为参数提供的对象的情况下,使用函数的返回值是一种好习惯吗?

来自分类Dev

JFrame-在一个JFrame中使用多个面板是一种好习惯吗?

来自分类Dev

在Neo4J中使用“ id”属性是一种好习惯吗?

来自分类Dev

在类中使用Optional作为属性是一种好习惯吗?

来自分类Dev

Laravel:在视图中使用模型关系是一种好习惯吗?

来自分类Dev

在Cloud Function中使用Docker是一种好习惯吗?

来自分类Dev

在javascript中使用php代码是一种好习惯吗?

来自分类Dev

在JSP中使用属性文本占位符是一种好习惯吗?

来自分类Dev

在Kotlin中使用运行功能代替return是一种好习惯吗?

来自分类Dev

在子组件中使用 route.navigate 语句是一种好习惯吗?

来自分类Dev

在Java中定义双字面量时使用'd'是一种好习惯吗?

来自分类Dev

在循环之前定义数组的长度是一种好习惯吗?

来自分类Dev

在C中隐藏结构定义是一种好习惯吗?

来自分类Dev

在循环之前定义数组的长度是一种好习惯吗?

来自分类Dev

定义不返回特定字段的吸气剂是一种好习惯吗?

来自分类Dev

使用SMTP验证来验证电子邮件地址是一种好习惯吗?

来自分类Dev

使用计数器是一种好习惯吗?

来自分类Dev

大量使用** kwargs以提高可读性被认为是一种好习惯吗?

来自分类Dev

使用Throw形状推迟Biztalk中的消息是一种好习惯吗?

来自分类Dev

使用HashMap通过迭代更新值来计数地图是一种好习惯吗?

Related 相关文章

  1. 1

    在函数定义之前立即导入依赖项是一种好习惯吗?

  2. 2

    在dataProvider中定义期望是一种好习惯吗

  3. 3

    使用外部函数中的变量是一种好习惯吗?

  4. 4

    使用WCF简化配置是一种好习惯吗?

  5. 5

    经常使用instanceof是一种好习惯吗?

  6. 6

    大量使用本地存储是一种好习惯吗?

  7. 7

    使用幻数是一种好习惯吗?

  8. 8

    在代码文件上定义函数但不在标头上声明函数是一种好习惯吗?

  9. 9

    删除函数,而不是使用弃用的注解使其保留在那里是一种好习惯吗?

  10. 10

    在返回的值是作为参数提供的对象的情况下,使用函数的返回值是一种好习惯吗?

  11. 11

    JFrame-在一个JFrame中使用多个面板是一种好习惯吗?

  12. 12

    在Neo4J中使用“ id”属性是一种好习惯吗?

  13. 13

    在类中使用Optional作为属性是一种好习惯吗?

  14. 14

    Laravel:在视图中使用模型关系是一种好习惯吗?

  15. 15

    在Cloud Function中使用Docker是一种好习惯吗?

  16. 16

    在javascript中使用php代码是一种好习惯吗?

  17. 17

    在JSP中使用属性文本占位符是一种好习惯吗?

  18. 18

    在Kotlin中使用运行功能代替return是一种好习惯吗?

  19. 19

    在子组件中使用 route.navigate 语句是一种好习惯吗?

  20. 20

    在Java中定义双字面量时使用'd'是一种好习惯吗?

  21. 21

    在循环之前定义数组的长度是一种好习惯吗?

  22. 22

    在C中隐藏结构定义是一种好习惯吗?

  23. 23

    在循环之前定义数组的长度是一种好习惯吗?

  24. 24

    定义不返回特定字段的吸气剂是一种好习惯吗?

  25. 25

    使用SMTP验证来验证电子邮件地址是一种好习惯吗?

  26. 26

    使用计数器是一种好习惯吗?

  27. 27

    大量使用** kwargs以提高可读性被认为是一种好习惯吗?

  28. 28

    使用Throw形状推迟Biztalk中的消息是一种好习惯吗?

  29. 29

    使用HashMap通过迭代更新值来计数地图是一种好习惯吗?

热门标签

归档