Java 向布尔方法添加异常

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

我有一个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) 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。把不同的东西分开,所以在这里使用不同的方法。虽然与您的问题无关,但您应该在条件代码中使用更多的大括号。编译器显然没有必要理解您的代码,但它肯定会帮助人们。仅仅因为你不需要为一条直线体使用大括号,并不意味着你不应该这样做!