Tôi có một phương pháp hữu ích và khi logic không liên quan được lấy ra từ nó, phương pháp đơn giản sẽ trông như thế này:Instantiating một lớp bên trong
public static <A extends Foo> List<A> getFooList(Class<A> clazz) {
List<A> returnValue = new ArrayList<A>();
for(int i=0; i < 5; i++) {
A object = clazz.newInstance();
returnValue.add(object);
}
return returnValue;
}
Vấn đề là, rằng nếu clazz
là một lớp bên trong như Foo.Bar.class
, sau đó phương thức newInstance()
sẽ không hoạt động ngay cả khi Bar
sẽ công khai, vì nó sẽ ném một số java.lang.InstantiationException
.
Có cách nào để tự động khởi tạo các lớp bên trong không?
Bạn vẫn cần phải kiểm tra xem lớp bên trong không phải là tĩnh ... – Corin