Java 在jar文件中列出包中的所有接口
各位好! 我试图列出特定包中接口的所有类。 我遇到了多种解决方案,并尝试了以下方法: 使用反射:Java 在jar文件中列出包中的所有接口,java,jar,classpath,reflections,Java,Jar,Classpath,Reflections,各位好! 我试图列出特定包中接口的所有类。 我遇到了多种解决方案,并尝试了以下方法: 使用反射: AllCommands = new ArrayList<ICommand>(); Reflections reflections = new Reflections(this.getClass().getPackage().getName()); commandClasses = reflections.getSubTypesOf(ICommand.class); for (Class&
AllCommands = new ArrayList<ICommand>();
Reflections reflections = new Reflections(this.getClass().getPackage().getName());
commandClasses = reflections.getSubTypesOf(ICommand.class);
for (Class<? extends ICommand> c :commandClasses){
AllCommands.add((ICommand)c.newInstance());
}
AllCommands=newarraylist();
反射反射=新反射(this.getClass().getPackage().getName());
commandClasses=reflections.getsubscriptsof(ICommand.class);
对于(Class我自己解决了。使用这个.getClass().getPackage().getName(),就像Packagename一样,只指向classes文件夹中的文件,引用jar中的类,我需要将“.”替换为“/”。谢谢。?我该怎么做“我该怎么做?”做什么?你必须更具体一些,因为我不打算写教程。
AllCommands = new ArrayList<ICommand>();
ComponentScanner scanner = new ComponentScanner();
scanner.getClasses(new ComponentQuery() {
@Override
protected void query() {
select().
from(this.getClass().getPackage().getName()).
andStore(thoseImplementing(ICommand.class).into(commandClasses)).
returning(none());
}
});
for (Class<? extends ICommand> c :commandClasses){
AllCommands.add((ICommand)c.newInstance());
}