0
獲取顯示java.lang.NullPointerException我寫了3班 「的printdevice,打印機,測試」 爲遵循與Java註釋和反射
首先,PrintDevice.java
public @interface PrintDevice{
String defaultPrint();
int defaultNumber();
}
其次,Printer.java
@PrintDevice(defaultPrint="print",defaultNumber=5)
public class Printer{
public Printer(){
//empty Construcutor
}
@PrintDevice(defaultPrint="print",defaultNumber=5)
public void print(int number){
System.out.println(number);
}
}
三,Test.java
import java.lang.reflect.*;
public class Test{
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException{
Printer printer = new Printer();
PrintDevice anno = printer.getClass().getAnnotation(PrintDevice.class);
Method m = printer.getClass().getMethod(anno.defaultPrint(),int.class);
m.invoke(printer,anno.defaultNumber());
}
}
並編譯它們沒有任何問題,但是當我試圖運行Test.java,我NullPointerExcetion如下: -
異常線程「main」顯示java.lang.NullPointerException 在Test.main( Test.java:7)
確切地說,它的工作原理你是對的。 – Scorpion
@OsamaElsayed您可能還想在註釋中添加一個「@ Target」註釋,以限制可以應用註釋的位置。 –