java如何使用getter_java – getter方法vs直接使用输入参数

我在我被分配到的项目中遇到过这个代码(当然简化了).

方法选项1

public myType getSomething(final int pTeamId) {

this.teamId = pTeamId;

final ClassABC classABC = new ClassABC(pTeamId);

...

return myType;

}

请注意输入参数pTeamId如何在方法的第一行中分配给私有数据成员teamId.请注意,这个teamId数据成员有getter和setter方法(为了简单起见,我没有打扰包含这些方法.只知道它们是标准的getter / setter对).

所以我想我可以用不同的方式编写这个方法,我调用我刚刚设置的数据成员的getter而不是像在方法选项1中那样使用直接传入的输入参数:

方法选项2

public myType getSomething(final int pTeamId) {

this.teamId = pTeamId;

final ClassABC classABC = new ClassABC(this.getTeamId());

...

return myType;

}

我意识到这个问题对某些人来说可能看起来微不足道和/或愚蠢,但我在一个我正在修改的大型代码库中经常遇到这种情况,所以我很好奇哪个是“正确”的方法来解决这个问题,方法选项1或方法选项2.

我的第一个倾向是使用方法选项1,但我真的没有充分的理由,除了“它看起来更快……”.

其他人可以提供更好的理由吗?

特别,

1)在这种情况下是否有适当/首选的惯例/技术/做法?

2)为什么一种选择比另一种更好?他们是平等的吗?有性能问题吗?等等

有没有我不问的问题? (或者这都是过度分析)?

任何见解将不胜感激.

解决方法:

getter可能有逻辑,就像不返回null而是返回空字符串.

与设定者相同.

直接操作变量时,不执行该逻辑.

如果有人重写getter和setter逻辑,这也可能是一个问题. (你可以通过让它们最终来禁止它)但这不是一个常见的做法! (我会更进一步,称之为反模式)

我建议总是叫getter / setters.而且没有真正的性能损失

标签:java,eclipse

来源: https://codeday.me/bug/20190624/1281651.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值