反射Java辅助
我有一个反射的东西,它可以找到所有类,所有类都有一个名为@Song的注释和一个charge的名称。我如何将其放入org.alexwebber.songs中,找到所有带有@Song的类,并将它们的名称放入一个数组中?谢谢反射Java辅助,java,reflection,retention,Java,Reflection,Retention,我有一个反射的东西,它可以找到所有类,所有类都有一个名为@Song的注释和一个charge的名称。我如何将其放入org.alexwebber.songs中,找到所有带有@Song的类,并将它们的名称放入一个数组中?谢谢 new Reflections("org.alexwebber.musicMaker.songs").getTypesAnnotatedWith(Song.class); for ( Class<?> cls : new Reflections("org.al
new Reflections("org.alexwebber.musicMaker.songs").getTypesAnnotatedWith(Song.class);
for ( Class<?> cls : new Reflections("org.alexwebber.musicMaker.songs").getTypesAnnotatedWith(Song.class) ) {
Song annotation = (Song) cls.getDeclaredAnnotation(Song.class);
if ( annotation != null && annotation.Name().equals("Charge")) {
@SuppressWarnings("unused")
Object song = cls.getConstructor().newInstance();
break;
}
下面的代码可能无法编译。。我在github上打的。。这就是你要找的吗?你已经完成了大部分工作。。如果您正在寻找其他内容,请更新问题
Set<Class<?>> classes=new Reflections("pkg prefix").getTypesAnnotatedWith(Song.class)
List<String> chargeNames=new ArrayList()<>;
for(Class<?> clz:classes){
Song annotation = (Song) cls.getDeclaredAnnotation(Song.class);
if(annotation!=null) chargeNames.add(annotation.Name());
}
String[] chargenamesar= chargeNames.toArray(new String[chargeNames.size()])
上面的代码有什么问题吗?我没有问题,我想要一个由所有类的字符串组成的数组,所有类都有@Song名称。