java类的添加方法
假设我有一个类似这样的Money类: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不支持运算符重载,而是需要添加一个
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