Java 向布尔方法添加异常
我有一个equals方法来比较一些属性,它看起来是这样的:Java 向布尔方法添加异常,java,Java,我有一个equals方法来比较一些属性,它看起来是这样的: public boolean Complementos(COSTOS obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; COSTOS other = (COSTOS) ob
public boolean Complementos(COSTOS obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
COSTOS other = (COSTOS) obj;
if (NumeroParte == null) {
if (other.NumeroParte != null)
return false;
} else if (!NumeroParte.equals(other.NumeroParte))
return false;
if (descripcion == null) {
if (other.descripcion != null)
return false;
} else if (!descripcion.equals(other.descripcion))
return false;
if (Double.doubleToLongBits(monto) != Double.doubleToLongBits(other.monto))
return false;
if (referencia != other.referencia)
return false;
return true;
}
但除了查看属性是否相等外,我还想从属性“-1,0,1”的“compareToIgnoreCase”返回一个值,我不允许这样做,因为该方法是布尔的,我尝试将其设置为“int”,但这只会将我的“return false/true”标记为error,所以。。。我可以用一个例外吗?如果我能。。。我如何实现
谢谢您可以使用异常来表达这一点,但您绝对不应该这样做。异常用于特殊情况,不应用于控制应用程序的流程
一般来说,如果有一个方法需要返回多个输出,那么应该将其拆分为多个方法。这使您的代码更加可重用,API更加容易混淆
在很少的情况下,您不能这样做,您可以返回一个表示方法结果的对象。例如:
@Transactional
public LoginResponse login(String username, char[] password);
为什么要同时返回布尔值和int值?你想完成什么。切勿将异常用于“正常”流,2。如果您的结果类型不允许返回您想要返回的内容,则某些内容处于关闭状态,并且为3。把不同的东西分开,所以在这里使用不同的方法。虽然与您的问题无关,但您应该在条件代码中使用更多的大括号。编译器显然没有必要理解您的代码,但它肯定会帮助人们。仅仅因为你不需要为一条直线体使用大括号,并不意味着你不应该这样做!