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]」。這個問題是許多老問題的重複。這是一個複雜的問題,沒有答案可以爲你解決問題。 –