我有一个混合的Java和Scala代码。
在我的Java代码中,我通常通过DTO's
访问dto.getSomething()
。现在我开始介绍新的Scala代码,我不想要一些使用旧DTO的旧Java代码将它们用作getProperty()
。
如果它会访问Scala DTO
看起来完全不同,ScalaDTO.property()
这意味着对于我的代码的可读性,我需要添加@BeanProperty
我的所有Scala属性将由Java代码使用以及在Scala代码中使用?
虽然这会解决我的可读性问题,但这会在我的Scala代码中引入混乱(@BeanProperty到所有Scala代码,因为它们可能会在我的Java代码中使用...)
您怎么看?
答案 0 :(得分:3)
我通常只使用@BeanProperty,而Java样式的getter和setter对于某些遗留Java框架是必需的,例如Spring或Jersey。除了注释本身的混乱之外,你还有一个叫做吸气剂和制定者的混乱。此外,当案例类或其他不可变数据结构通常是首选的Scala方法时,您将需要使用var属性而不是val,尤其是对于类似Dtos的方法。
我认为这是个人的风格偏好,但是我更喜欢Scala的风格和实际的好处,例如不变性,我倾向于尝试将混合代码库推向Scala惯用语而不是Java习语。