मैं एक उपयोगिता विधि है फेंक:कैसे Class.getMethod बनाने के लिए() एक विशेष क्षेत्र के लिए एक वस्तु के गेटर विधि (प्रतिबिंब का उपयोग कर) को खोजने के लिए एक SecurityException
public static Method findGetter(final Object object, final String fieldName) {
if(object == null) {
throw new NullPointerException("object should not be null");
} else if(fieldName == null) {
throw new NullPointerException("fieldName should not be null");
}
String getterName = getMethodNameForField(GET_PREFIX, fieldName);
Class<?> clazz = object.getClass();
try {
return clazz.getMethod(getterName);
} catch(final NoSuchMethodException e) {
// exception handling omitted
} catch(final SecurityException e) {
// exception handling omitted
}
}
मैं एक इकाई परीक्षण लिखने के लिए चाहते हैं कि SecurityException परिदृश्य को कवर करता है, लेकिन मैं getMethod को सुरक्षा अपवाद कैसे फेंक सकता हूं?
जावाडोक कहा गया है कि getMethod
SecurityException
फेंक देंगे एक सुरक्षा प्रबंधक, रों, मौजूद है और निम्नलिखित से कोई भी शर्त पूरी की जाती है:
s.checkMemberAccess के आह्वान (यह, सदस्य। PUBLIC) विधि
तक पहुंच से इनकार करता है कॉलर का क्लास लोडर कक्षा एल के पूर्वजों के समान नहीं है। वर्तमान वर्ग और s.checkPackageAccess() के आह्वान के लिए oader इस वर्ग
मैं नहीं बल्कि एक मजाक ढांचे का सहारा से, आम तौर पर अपवाद को गति प्रदान करना पसंद करेंगे के पैकेज के लिए उपयोग से इनकार करते हैं।
धन्यवाद @ बोझो! यह एक बेहद असंभव परिदृश्य है, लेकिन परीक्षण करना सक्षम होना अच्छा है। –