Java là ngôn ngữ được nhập tĩnh, do đó trình biên dịch thực hiện hầu hết việc kiểm tra này cho bạn. Khi bạn khai báo một biến là một kiểu nhất định, trình biên dịch sẽ đảm bảo rằng nó chỉ là các giá trị được gán của kiểu đó (hoặc các giá trị là các kiểu con của kiểu đó).
Các ví dụ bạn đã cung cấp (int, array, double) tất cả đều là nguyên thủy và không có loại phụ nào trong số chúng. Vì vậy, nếu bạn khai báo một biến là một int
:
int x;
Bạn có thể chắc chắn nó sẽ chỉ bao giờ giữ int
giá trị.
Nếu bạn tuyên bố biến là List
, tuy nhiên, có thể biến sẽ giữ loại phụ là List
. Ví dụ về các bao gồm ArrayList
, LinkedList
vv
Nếu bạn đã có một biến List
, và bạn cần phải biết nếu nó là một ArrayList
, bạn có thể làm như sau:
List y;
...
if (y instanceof ArrayList) {
...its and ArrayList...
}
Tuy nhiên, nếu bạn thấy mình nghĩ rằng bạn cần phải làm điều đó, bạn có thể muốn nghĩ lại cách tiếp cận của bạn. Trong hầu hết các trường hợp, nếu bạn làm theo các hiệu trưởng hướng đối tượng, bạn sẽ không cần phải làm điều này. Có, tất nhiên, ngoại lệ cho mọi quy tắc, mặc dù.
Hãy xem đến [Reflection API] (http://download.oracle.com/javase/tutorial/reflect/). – mschonaker