1
每个人都知道在Java中简单的算术题是如何工作的原语:Java注解对非原始数字的简单算术
int one = 1,two = 2,three = one + two;
double four = (one + two)/three;
if(four % 1 == 0){
System.out.println("Yay for simple maths!");
} else{
throw new RealityError("http://www.youtube.com/watch?v=H91rPIq2mN4");
}
但是你离开原语的那一刻事情就变得复杂快!试图重复以前的简单算术非常困难!
BigInteger bigOne = BigInteger.ONE, bigTwo = BigInteger.valueOf(2),
bigThree = bigOne.add(bigTwo);
BigDecimal bigFour = new BigDecimal(bigThree.divide(bigOne.add(bigTwo)));
if (BigInteger.valueOf(bigFour.longValueExact()).mod(BigInteger.ONE).equals(BigInteger.ZERO)) {
System.out.println("Yay for simple maths?!?!");
} else {
throw new RealityError("http://www.youtube.com/watch?v=H91rPIq2mN4");
}
为什么不是用于像+, -, *, or /
这样的运营商的注释?如@DefaultAddOperator
为扩展Number的类。或者,在BigInteger类中,为什么它不能实现一个接口,该接口只说明在类上调用操作符时要执行的操作。这个概念并没有太多提及,我的意思是它与"Hello World!".toString()
和重载的运算符+
一起使用,并且将大大简化上述基于类的算术。
这样的注释放在哪里? –
请搜索“运算符重载[java]”。这个问题是许多老问题的重复。这是一个复杂的问题,没有答案可以为你解决问题。 –