在Java中执行某些操作并返回表示成功的布尔值的好习惯是什么?

LaR*_*RRy 4 java methods

我的意思是,我读到一个编写方法的好方法是遵循规则:一个方法应该只做一个任务.如果我有不同的顺序操作,那么我需要将方法分成几个.它应该使代码更简洁,自我解释的方法名称.但是如果我想实现应该做某事的方法然后返回布尔值 - true表示成功,如果失败则表示false.例如,假设我们有一个名为setObjectValue()的setter.[再次,它只是一个例子].

问题:使用此名称并返回布尔值是否合适,或者它应该是:isSuccessfullsetObjectValue(),setObjectValueAndCheckIsOk(),还是应该有两种方法或什么?因为名称"setObjectValue()"不会告诉您该方法除了设置值之外还在执行某些操作.

Jam*_*ery 11

除非有充分的理由,否则我通常会使用Exceptions来表明这一点.这有两个好处:

  1. 你遵循1方法的惯例 - 1个想法
  2. 你强迫自己(如果选中了Exception)来处理失败案例.如果返回一个布尔值,那么代码很容易忽略这种情况.

如果您这样做:

try{

  setObjectValue("foo")
} catch(SomeKindOfException e){
  //handle
} 
Run Code Online (Sandbox Code Playgroud)

然后你会得到它的更多好处,就像英语一样:"尝试设置对象值,但如果你不能再用它来处理......"

  • 关于抛出这样的例外是否真的是好的做法存在相当多的争论.不确定它在这里也是最有意义的. (2认同)