Hãy xem xét lớp kiểm tra đơn giản:
import java.math.BigDecimal;
/**
* @author The Elite Gentleman
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println(x.equals(y));
System.out.println(x.compareTo(y) == 0 ? "true": "false");
}
}
Bạn có thể (có ý thức) nói rằng x
bằng y
(không phải tham chiếu đối tượng), nhưng khi bạn chạy chương trình, kết quả sau đây cho thấy:
false
true
Câu hỏi: Sự khác biệt giữa compareTo()
và equals()
trong BigDecimal
đó compareTo
có thể xác định đó x
là bằng y
?
PS: Tôi thấy rằng BigDecimal có một inflate()
phương thức trên equals()
phương thức. Những gì inflate()
thực sự làm?
inflate()
: nó không phải là một phần của API công khai vì nó chỉ thao túng biểu diễn bên trong và không có hiệu ứng rõ ràng đối với "bên ngoài". Vì vậy, trừ khi bạn thực sự muốn nghiên cứu triển khaiBigDecimal
chuyên sâu, tôi khuyên bạn nên bỏ qua phương pháp này.