public List<VisTextButton> getButtons(Class<? extends Annotation> cls) { List<VisTextButton> btnList = new ArrayList<>(); Reflections r = new Reflections("net.ncguy.impossible.graph.nodes"); Set<Class<?>> clsSet = r.getTypesAnnotatedWith(cls); r.save("nodeBtns.bin"); System.out.println("gfdsgfd"); for (Class<?> c : clsSet) { VisTextButton btn = new VisTextButton("Add " + TextUtils.formatString(c.getSimpleName())); btn.addListener( new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); try { BaseNode node = (BaseNode) c.getConstructor(GraphBase.class).newInstance(graphBase); addNode(node); } catch (Exception e) { e.printStackTrace(); } graphBase.rebuildDnD(); } }); btnList.add(btn); } return btnList; }