java类的添加方法

java类的添加方法,java,methods,Java,Methods,假设我有一个类似这样的Money类: public class Money { private BigDecimal amount; private Currency currency; } 我想把这两个类加在一起,例如 Money m1 = Money(5); Money m2 = Money(10); Money m3 = m1+m2; // m3.amount should be 15 如何编写一个方法,以便将这两个货币类相加?Java不支持运算符重载,而是需要添加一个

假设我有一个类似这样的Money类:

public class Money {
    private BigDecimal amount;
    private Currency currency;
}
我想把这两个类加在一起,例如

Money m1 = Money(5);
Money m2 = Money(10);
Money m3 = m1+m2; // m3.amount should be 15

如何编写一个方法,以便将这两个货币类相加?

Java不支持运算符重载,而是需要添加一个add函数:

public class Money {
    private BigDecimal amount;
    private Currency currency;

    public Money add(Money m) {
        Money res = new Money();
        if (!currency.equals(m.currency)) {
            throw new UnsupportedOperationException();
        }
        res.currency = currency;
        res.amount = m.amount.add(amount);
        return res;
    }
}

Money result = one.add(two);

问题是?为加法编写一个方法。这在Java中是不可能的,因为Java没有用户定义的运算符重载-无法为两个
Money
对象定义运算符
+
。而且在Java中没有
var
Java@sudo哈哈,我一直把kotlin和Java混在一起,我不太喜欢在货币不匹配的情况下返回null;在这个问题的上下文中,这没关系,因为OP不关心它,但实际上,理想情况下会有一种货币转换方法,这样使用Money类的人就不必经常检查null。这是非常正确的,editedI删除了
错误部分,因为它是胡说八道,就像“这是程序员错误”一样。这种问题发生在运行时,在程序员无法控制其他对象的对象上。这显然是使用
异常
,而不是
错误
。谢谢。只是需要知道Java不支持它。代码有点问题,所以我用有效的方法更新了它。小心使用
==
=equals
而不是
equal