private void printTypeParameters(List<TypeParameter> args, Object arg) {
   if (args != null) {
     for (Iterator<TypeParameter> i = args.iterator(); i.hasNext(); ) {
       TypeParameter t = i.next();
       t.accept(this, arg);
       if (i.hasNext()) {}
     }
   }
 }
 public void visit(TypeParameter n, Object arg) {
   if (n.getTypeBound() != null) {
     for (Iterator<ClassOrInterfaceType> i = n.getTypeBound().iterator(); i.hasNext(); ) {
       ClassOrInterfaceType c = i.next();
       c.accept(this, arg);
       if (i.hasNext()) {}
     }
   }
 }