ÈËÆÞjavaparserÈËÆÞ¤Îʹ¤¤·½¤È„¿¹û¤òÔ”¤·¤¯½B½é

ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº
×ÖºÅ

×ܽá

ÈËÆÞjavaparserÈËÆÞ×÷Ϊһ¿îǿʢÇÒÎÞаµÄJava´úÂëÆÊÎö¹¤¾ß £¬ÆäǿʢµÄÆÊÎö¹¦Ð§ºÍ±ã½ÝµÄʹÓÃÌåÑé £¬Ê¹ÆäÔÚ¿ª·¢ÕßÉçÇøÖб¸ÊÜÍÆÐí¡£Í¨¹ýÕÆÎÕÈËÆÞjavaparserÈËÆÞµÄ»ù±¾Ê¹ÓÃÒªÁìºÍ¸ß¼¶Ó¦Óó¡¾° £¬Äú½«Äܹ»¸ü¸ßЧµØ¾ÙÐдúÂ뿪·¢¡¢µ÷ÊÔºÍÓÅ»¯ £¬Ìá¸ß´úÂëÖÊÁ¿ºÍ¿ª·¢Ð§ÂÊ¡£

ÔÚδÀ´µÄ¿ª·¢ÊÂÇéÖÐ £¬³ä·ÖʹÓÃÈËÆÞjavaparserÈËÆÞµÄ¸÷ÏЧ £¬ÏàÐÅÄúÄܹ»´ø?À´¸ü´óµÄÊÖÒÕÍ»ÆÆºÍÏîÄ¿Àֳɡ£Ð»Ð»ÄúÔĶÁ±¾ÎÄ £¬Ï£ÍûÕâЩÄÚÈÝÄÜΪÄúµÄ¿ª·¢Ö®Â·ÌṩÓмÛÖµµÄ×ÊÖú¡£

ÐÔÄÜÆÊÎöºÍÓÅ»¯£ºÍ¨¹ý¶Ô´úÂëµÄÖ´Ðз¾¶ºÍŲÓôÎÊý¾ÙÐÐÏêϸÆÊÎö £¬ÈËÆÞjavaparserÈËÆÞ¿ÉÒÔ×ÊÖú¿ª·¢Õßʶ±ðÐÔÄÜÆ¿¾±¡£ÀýÈç £¬Í¨Ì«¹ýÎö´úÂëÖеÄÑ­»·ºÍÖØ´óËã·¨ £¬Äú¿ÉÒÔÕÒµ½¿ÉÒÔÓÅ»¯µÄ´úÂë¶Î £¬´Ó¶øÌá¸ßϵͳµÄÕûÌåÐÔÄÜ¡£

¿çÍŶÓЭ×÷£ºÔÚ¶àÈËЭ×÷¿ª·¢ÖÐ £¬ÈËÆÞjavaparserÈËÆÞ¿ÉÒÔ×ÊÖú²î±ðÍŶÓÖ®¼ä¾ÙÐдúÂëÉó²éºÍ¼¯³É¡£Í¨¹ýÌìÉúÏêϸµÄÆÊÎö±¨¸æºÍÒÀÀµ¹ØÏµÍ¼ £¬ÍŶӳÉÔ±¿ÉÒÔ¸üºÃµØÃ÷È·´úÂëµÄÕûÌå¼Ü¹¹ºÍ¸÷¸öÄ£¿éÖ®¼äµÄ¹ØÏµ £¬´Ó¶øïÔÌ­Ïàͬ±¾Ç®ºÍЭ×÷Õϰ­¡£

1´úÂëÆÊÎö

importcom.github.javaparser.JavaParser;importcom.github.javaparser.ast.CompilationUnit;importcom.github.javaparser.ast.body.MethodDeclaration;importcom.github.javaparser.ast.visitor.VoidVisitorAdapter;publicclassJavaParserExample{publicstaticvoidmain(Stringargs){try{//ÆÊÎöJavaÎļþCompilationUnitcu=JavaParser.parse("src/main/java/HelloWorld.java");//±é?ÀúÒªÁìcu.accept(newVoidVisitorAdapter(){@Overridepublicvoidvisit(MethodDeclarationmd,Voidarg){System.out.println("Method:"+md.getName());}},null);}catch(Exceptione){e.printStackTrace();}}}

ʲôÊÇÈËÆÞjavaparserÈËÆÞ¤Î

ÈËÆÞjavaparserÈËÆÞÊÇÒ»¿îרÃÅÓÃÓÚÆÊÎöºÍÆÊÎöJava´úÂëµÄ¹¤¾ß¡£Ëü¿ÉÒÔ×ÊÖú¿ª·¢Õ߸ü¸ßЧµØÃ÷È·¡¢µ÷ÊÔºÍÓÅ»¯Java´úÂë £¬Ìá¸ß´úÂëÖÊÁ¿ºÍ¿ª·¢Ð§ÂÊ¡£ÈËÆÞjavaparserÈËÆÞµÄ½¹µã¹¦Ð§ÔÚÓÚÆäǿʢµÄÓï·¨ÆÊÎöÄÜÁ¦ £¬Äܹ»¶ÔJavaÔ´´úÂë¾ÙÐÐϸÄ廯µÄÆÊÎö £¬²¢ÌìÉúÏêϸµÄÓï·¨Ê÷ºÍÆÊÎö±¨¸æ¡£

avaParserHDµÄÖ÷ÒªÌØµã

¸ßЧµÄASTÌìÉú?£ºJavaParserHDÄܹ»¿ìËٵؽ«JavaÔ´Âëת»»ÎªÁýͳÓï·¨Ê÷ £¬ÎªºóÐøµÄ´úÂëÆÊÎöºÍÐÞ¸ÄÌṩ»ù´¡¡£

¸»ºñµÄAPI½Ó¿Ú£ºÌṩÁË´ó×Ú±ã½ÝµÄAPI½Ó¿Ú £¬×ÊÖú¿ª·¢ÕßÇáËɾÙÐдúÂëÆÊÎö¡¢Ð޸ĺÍÃûÌû¯¡£

ÓÅÒìµÄÀ©Õ¹ÐÔ£ºJavaParserHDµÄÉè¼Æ¾ßÓи߶ȵÄÄ£¿é»¯ £¬±ãÓÚÆ¾Ö¤ÐèÒª¾ÙÐжþ´Î¿ª·¢ºÍÀ©Õ¹¡£

Ö§³Ö¶àÖÖJava°æ±¾£ºJavaParserHDÄܹ»Ö§³Ö¶àÖÖJava°æ±¾ £¬È·±£ÔÚ²î±ðÇéÐÎϵļæÈÝÐÔ¡£

ÈËÆÞjavaparserµÄÏÈÈÝ

ÈËÆÞjavaparserÊÇÒ»¿î»ùÓÚÁýͳÓï·¨Ê÷£¨AST£©µÄJavaÆÊÎö¹¤¾ß £¬ËüÄܹ»¸ßЧµØÆÊÎöJavaÔ´Âë £¬²¢ÌìÉú¿É²Ù×÷µÄÁýͳÓï·¨Ê÷¡£ÕâÒ»¹¤¾ß²»µ«ÊÊÓÃÓÚ´úÂëÆÊÎöºÍµ÷ÊÔ £¬»¹¿ÉÒÔÓÃÓÚ´úÂëÖØ¹¹¡¢´úÂëÌìÉúµÈ¶àÖÖ³¡¾°¡£ÆäǿʢµÄÆÊÎöÄÜÁ¦ºÍ¸»ºñµÄAPI½Ó¿Ú £¬Ê¹Æä³ÉΪ¿ª·¢Õß²»¿É»òȱµÄ¹¤¾ßÖ®Ò»¡£

ʾÀý´úÂ룺

importcom.github.javaparser.JavaParser;importcom.github.javaparser.ast.CompilationUnit;importcom.github.javaparser.ast.body.MethodDeclaration;importcom.github.javaparser.ast.expr.MethodCallExpr;importcom.github.javaparser.ast.body.ClassOrInterfaceDeclaration;importcom.github.javaparser.ast.body.VariableDeclator;publicclassCodeGenerationExample{publicstaticvoidmain(Stringargs){try{CompilationUnitcu=newCompilationUnit();//½¨ÉèÀàClassOrInterfaceDeclarationmyClass=newClassOrInterfaceDeclaration();myClass.setName("MyClass");cu.addType(myClass);//½¨ÉèÒªÁìMethodDeclarationmyMethod=newMethodDeclaration();myMethod.setName("myMethod");myMethod.addParameter("int","a");myMethod.addParameter("int","b");myMethod.setReturnType2(Void.class);myMethod.addBodyStmt("System.out.println(a+b);");myClass.addMember(myMethod);//ÌìÉú´úÂëSystem.out.println(cu.toString());}catch(Exceptione){e.printStackTrace();}}}

У¶Ô£º¾´Ò»µ¤(f3J1ePQDlzHhwh44q38w4Ima2E3XrDq)

ÔðÈα༭£º ÀîÂåÔ¨
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È· £¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼ £¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Òé £¬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ"֤ȯʱ±¨"¹Ù·½APP £¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«ÖںŠ£¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬ £¬¶´²ìÕþ²ßÐÅÏ¢ £¬ÕÆÎղƲú»ú»á¡£
ΪÄãÍÆ¼ö
Óû§Ì¸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨ £¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ÈËÆÞjavaparserÈËÆÞ¤Îʹ¤¤·½¤È„¿¹û¤òÔ”¤·¤¯½B½é