Tôi có một lớp sử dụng XML và sự phản chiếu để trả lại Object
s cho một lớp khác.
Thông thường các đối tượng này là các trường con của một đối tượng bên ngoài, nhưng đôi khi nó là thứ tôi muốn tạo ra khi đang bay. Tôi đã thử một cái gì đó như thế này nhưng vô ích. Tôi tin rằng vì Java sẽ không cho phép bạn truy cập private
các phương thức để phản ánh.
Element node = outerNode.item(0);
String methodName = node.getAttribute("method");
String objectName = node.getAttribute("object");
if ("SomeObject".equals(objectName))
object = someObject;
else
object = this;
method = object.getClass().getMethod(methodName, (Class[]) null);
Nếu phương thức được cung cấp là private
, nó thất bại với a NoSuchMethodException
. Tôi có thể giải quyết nó bằng cách tạo phương thức public
, hoặc tạo một lớp khác để lấy nó từ đó.
Tóm lại, tôi chỉ tự hỏi liệu có cách nào để truy cập một private
phương thức thông qua sự phản chiếu.