Trong java, tôi có thể sử dụng đối tượng lớp để tự động khởi tạo các lớp thuộc loại đó không?lớp khởi tạo từ đối tượng lớp
tức là tôi muốn một số chức năng như thế này.
Object foo(Class type) {
// return new object of type 'type'
}
Trong java, tôi có thể sử dụng đối tượng lớp để tự động khởi tạo các lớp thuộc loại đó không?lớp khởi tạo từ đối tượng lớp
tức là tôi muốn một số chức năng như thế này.
Object foo(Class type) {
// return new object of type 'type'
}
Bạn có thể sử dụng Class.newInstance
:
Object foo(Class type)
throws InstantiationException, IllegalAccessException {
return type.newInstance();
}
... nhưng mà giả định có một constructor không có đối số. Một tuyến đường mạnh mẽ hơn là đi qua Class.getConstructor
hoặc Class.getConstructors
, sẽ đưa bạn vào sử dụng công cụ Phản chiếu trong gói java.lang.reflect
.
Sử dụng:
type.newInstance()
Đối với việc tạo ra một thể hiện bằng cách sử dụng costructor trống rỗng, hoặc sử dụng các phương pháp type.getConstructor (..) để có được các nhà xây dựng có liên quan và sau đó gọi nó.
Có, nó được gọi là Phản ánh. bạn có thể sử dụng phương thức Class newInstance()
cho việc này.
sử dụng phương thức newInstance().
Bạn có thể đọc thêm tại địa chỉ: http://java.sun.com/docs/books/tutorial/reflect/index.html Bài đăng này cũng có thông tin rất tốt: http://stackoverflow.com/questions/37628/what-is-reflection-and-why-is-it-useful – RonK