我把三个班“打印设备、打印机、测试”写如下
首先是PrintDevice.java
公共@接口打印设备{
字符串默认打印(;
int defaultNumber (;
}
第二,Printer.java
@ print device (默认打印=' print ',默认编号=5) )。
公共类打印机{
公共打印机
//empty构造器
}
@ print device (默认打印=' print ',默认编号=5) )。
公共语音打印(int number ) {
system.out.println(number );
}
}
三. Test.java
import java.lang.reflect.*;
公共类测试{
publicstaticvoidmain (string [ ] args ) throws NoSuchMethodException,IllegalAccessException,InvocationTargetException{
打印机打印机=new打印机(;
打印设备anno=printer.getclass (.get annotation (print设备. class ) );
methodm=printer.getclass (.get method ) anno.defaultprint ),int.class );
m.invoke (打印机,anno.defaultNumber ) );
}
}
可以顺利编译,但尝试运行Test.java时,NullPointerExcetion如下所示: -
Test.main线程“main”Java.lang.nullpointerexception中的异常(Test.java:7 ) )。