ASMParser { public MethodDeclaration method( String name, boolean isConstructor ) { return mMETHOD(name, isConstructor); } ASMParser(
                      String type ); List<TypeReference> types(); TypeReference type(); MethodDeclaration method( String name,
                                     boolean isConstructor );  }
@Test public void testMethod1() { final String type = "<T:Ljava/lang/Object;>(I)Ljava/lang/Class<+TT;>;"; final ASMParser parser = new ASMParser(type); final MethodDeclaration activeMethod = parser.method("teste", false); Assert.assertEquals(1, activeMethod.getParameters().size()); Assert.assertEquals("int", activeMethod.getParameters().get(0).getDataType().getFullName()); Assert.assertEquals("java.lang.Class<? extends T>", activeMethod.getReturnType().getFullName()); Assert.assertEquals("T", activeMethod.getTypeParameters().get(0).getName()); Assert.assertEquals("java.lang.Object", activeMethod.getTypeParameters().get(0).getTypeBounds().get(0).getFullName()); }