2009-08-18 38 views

Trả lời

32

Tôi không chắc chắn nếu các yếu tố GWT làm cho một sự khác biệt nhưng nhìn chung:

boolean là một nguyên thủy loại java trong khi Boolean là một loại đối tượng/tài liệu tham khảo mà kết thúc tốt đẹp một boolean

Chuyển đổi giữa các nguyên thủy và các đối tượng như thế này được gọi là boxing/unboxing.

Dưới đây là thông tin thêm:

http://javaeye.wordpress.com/2008/06/17/boxing-and-unboxing-conversion/

Tại sao hộp bạn yêu cầu?

http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html

http://www.javapractices.com/topic/TopicAction.do?Id=197

9

Trong Java, một boolean là một chữ true hoặc false, trong khi Boolean là một wrapper đối tượng cho một boolean.

Ít khi có lý do để sử dụng Boolean trên boolean ngoại trừ trong trường hợp cần tham chiếu đối tượng, chẳng hạn như trong List.

Boolean cũng chứa phương pháp tĩnh parseBoolean(String s) mà bạn có thể đã biết.

5

Java có các loại nguyên thủy (int, boolean, float, vv) và bất cứ lúc nào bạn muốn sử dụng chúng như một thể hiện của một đối tượng họ đang được bọc trong một loại Class liên kết. Ví dụ: booleans được gói bởi Booleans, int là Integer, v.v.

Nó cũng có những lợi ích của nó. boolean không có các phương thức trợ giúp (vì nó không phải là một lớp), nhưng Boolean thực hiện. Vì vậy, nếu bạn muốn chuyển đổi một chuỗi thành boolean, bạn có thể thử Boolean.valueOf ("true").

Hy vọng điều đó sẽ hữu ích.

1

Theo như GWT, chúng giống nhau trong GWT khi có trong java.
boolean là nguyên thủy và Boolean trong trình bao bọc đối tượng.

92

Đó là khá đơn giản và tương tự cho GWT và Java:

  • boolean có thể có hoặc không
  • Boolean có thể có, không hoặc NULL.

Vì vậy, trừ khi bạn cần NULL (ví dụ: bạn tải trường từ cơ sở dữ liệu và bạn muốn NULL khác với sai), sau đó dính vào boolean.

+6

Đẹp ... nhanh và bẩn! =) –

+18

không có gì bẩn về nó. – rustyshelf

+0

Tnx rất nhiều !!! Vì vậy, hữu ích và rõ ràng exlaination – AndreaNobili

1

Theo các tài liệu thi đua GWT JRE (http://code.google.com/webtoolkit/doc/1.6/RefJreEmulation.html) các phương pháp này được hỗ trợ trên các loại Boolean: Boolean (boolean), Boolean (String), parseBoolean (String), toString (boolean), valueOf (boolean), valueOf (Chuỗi), booleanValue(), compareTo (Boolean), bằng (Object), hashCode(), toString()

là sự khác biệt giữa các kiểu đối tượng Boolean và Boolean. Các đối tượng Boolean có thể ở 3 trạng thái, vì vậy nó không giống hệt nhau. Nhưng nếu điều đó tạo nên sự khác biệt trong GWT (hiệu năng khôn ngoan), tôi không có manh mối, tôi đoán là nó không quan trọng nhiều vì trình biên dịch GWT sẽ tối ưu hóa mã và hầu hết các phép toán đơn giản có thể ánh xạ tới các hoạt động boolean javascript nguyên gốc.

Nhưng như thường lệ: chắc chắn bạn phải đo lường (và xem xét điều này có thể khác nhau dựa trên trình duyệt/phiên bản bạn đang đo).

Loại đối tượng Boolean thường không được sử dụng thường xuyên vì kiểu gốc boolean là tự nhiên hơn (bạn không cần phải kiểm tra null tất cả thời gian).

5

Bởi vì Boolean có thể rỗng, nó có thể được sử dụng để tải chậm.

if(hasRoots == null){ 
    calculateRoots(); 
} 
1

boolean là một loại nguyên thủy trong khi Boolean là wrapper class.Same áp dụng cho (int, Integer), (dài, Long) vv lớp Wrapper "quấn" các kiểu dữ liệu cơ bản tương ứng thành một đối tượng đó lớp học.

Chúng được sử dụng với các bộ sưu tập, vì các kiểu nguyên thủy không được phép với bộ sưu tập. Ngoài ra, việc sử dụng các lớp bao bọc cho phép bạn truy cập vào nhiều phương thức mà bạn có thể gọi trên đối tượng đó. Ví dụ: Lớp trình bao bọc ký tự có các phương thức như:

isDigit() - để xác định xem ký tự có phải là chữ số hay không. isLower() - để xác định xem ký tự có phải là chữ thường hay không. là Letter() - để xác định xem ký tự có phải là một bảng chữ cái hay không.

chúng tôi không thể sử dụng các phương pháp trên nếu chúng tôi sử dụng loại nguyên thủy so với lớp trình bao bọc.

Các vấn đề liên quan