2013-05-13 23 views

Trả lời

9

Object là lớp cơ sở cho tất cả các lớp java. Type chỉ là một giao diện thẻ cho tất cả các lớp đại diện cho các loại. Nó đã được giới thiệu trong java 1.5 vì trước java 1.5 không có lớp nào đại diện cho loại java ngoại trừ java.lang.Class. Sau đó, khi generics đã được giới thiệu có một nhu cầu để tạo ra một số trừu tượng chung chung cho Class, mảng chung vv Vì vậy, họ xác định giao diện Type.

+1

Thật vậy. Điều quan trọng mà OP có thể đã bỏ lỡ là mỗi 'Lớp' chính nó là một' Object'. – Barend

+0

Vì vậy, tôi sẽ sử dụng loại khi tôi cần phải có nhiều Object.class khác nhau? –

+0

Không, bạn sẽ sử dụng 'Loại' khi bạn sử dụng API trả về một. Không có dịp khác để làm như vậy, và thực sự không có cách nào khác để làm như vậy. – EJP

0

'Đối tượng' là siêu kiểu cho tất cả các lớp, 'Lớp' là một lớp xác định một lớp và 'Loại' là một siêu kiểu bao gồm các kiểu nguyên thủy (int, boolean, v.v.).

+0

Hoàn toàn không chính xác. Xem Javadoc. 'Object' không phải là siêu kiểu. 'Type' cũng không phải là siêu kiểu, nó là' giao diện'; nó không bao gồm các kiểu nguyên thủy; và chỉ được sử dụng cho Generics. -1 – EJP

+0

Đây là những gì javadoc nói về java.lang.reflect.Type: "Loại là siêu phổ biến ** cho tất cả các loại ** trong ngôn ngữ lập trình Java, bao gồm các kiểu thô, kiểu tham số, kiểu mảng, biến kiểu và ** loại nguyên thủy ** ". – javadeveloper

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