ÔÚµ±½ñÐÅÏ¢±¬Õ¨µÄʱ´ú£¬Êý¾Ý´¦Öóͷ£ºÍÆÊÎöÒѾ³ÉΪ¸÷Ðи÷Òµ²»¿É»òȱµÄÊÖÒÕ¡£ÎÞÂÛÊÇÆóÒµ¹ÜÀí¡¢½ðÈÚÆÊÎö£¬ÕÕ¾ÉѧÊõÑо¿£¬Êý¾ÝµÄ¸ßЧ´¦Öóͷ£¶¼ÊǾöÒéÀÖ³ÉÓë·ñµÄÒªº¦ÒòËØ¡£ÔÚÕâÖÖÅä¾°Ï£¬¾«Æ·JavaparserÈËÆÞ×÷Ϊһ¿îǿʢµÄÊý¾Ý´¦Öóͷ£¹¤¾ß£¬ÒòÆä׿ԽµÄÐÔÄܺͱã½ÝµÄ²Ù×÷½çÃæ£¬Ñ¸ËÙÓ®µÃÁËÓû§µÄÇàíù¡£
¾«Æ·JavaparserÈËÆÞÊÂʵÓÐÄÄЩÊÊÓüÛÖµ£¿ÎÒÃǽ«´ÓÒÔϼ¸¸ö·½Ãæ¾ÙÐÐÏêϸ̽ÌÖ¡£
´úÂëÖØ¹¹
´ú?ÂëÖØ¹¹ÊÇÌá¸ß´úÂëÖÊÁ¿ºÍ¿Éά»¤ÐÔµÄÖ÷ÒªÊֶΡ£¾«Æ·JavaparserÈËÆÞ°æÌṩÁËǿʢµÄ´úÂëÖØ¹¹¹¦Ð§£¬¿ÉÒÔ×Ô¶¯»¯µØ¶Ô´úÂë¾ÙÐÐÓÅ»¯ºÍˢС£ÀýÈ磬Äã¿ÉÒÔʹÓÃJavaparser½«´ó?ÐÍÀà²ð·ÖΪ¶à¸öСÀ࣬»òÕß½«Öظ´µÄ´úÂë¶ÎÌáȡΪ×ÔÁ¦µÄÒªÁì¡£Õâ²»µ«ÄÜÌá¸ß´úÂëµÄ¿É¶ÁÐԺͿÉά»¤ÐÔ£¬»¹ÄÜïÔ̹ýʧµÄ±¬·¢¡£
¸ßЧµÄÊý¾ÝÆÊÎöÄÜÁ¦
¾«Æ·JavaparserÈËÆÞ×î´óµÄÌØÉ«Ö®Ò»¾ÍÊÇÆä¸ßЧµÄÊý¾ÝÆÊÎöÄÜÁ¦¡£ËüÄܹ»ÇáËÉ´¦Öóͷ£ÖÖÖÖÃûÌõÄÊý¾Ý£¬°üÀ¨HTML¡¢XML¡¢JSONµÈ¡£ÔÚÏÖʵӦÓÃÖУ¬Êý¾ÝÍùÍùÒÔ²î±ðµÄÃûÌ÷ºÆð£¬¾«Æ·JavaparserÈËÆÞͨ¹ýÄÚÖÃµÄÆÊÎöÆ÷£¬¿ÉÒÔ¿ìËÙ¡¢×¼È·µØÆÊÎöÕâЩÊý¾Ý£¬²¢½«Æäת»»ÎªÒ×ÓÚ²Ù×÷µÄÊý¾Ý½á¹¹¡£
ÎÞÂÛÊÇÅÀÈ¡ÍøÒ³Êý¾Ý£¬Õվɴ¦Öóͷ£ÖØ´óµÄXMLÎļþ£¬¾«Æ·JavaparserÈËÆÞ¶¼Äܹ»ÇáËÉÓ¦¶Ô£¬Ìá¸ßÊý¾Ý´¦Öóͷ£µÄЧÂÊ¡£
¸ß¼¶ÉèÖÃ
importcom.github.javaparser.ast.visitor.VoidVisitorAdapter;importcom.github.javaparser.ast.body.MethodDeclaration;publicclassAdvancedConfigExample{publicstaticvoidmain(Stringargs){JavaParser.getConfiguration().setLanguageLevel(JavaLanguageLevel.JAVA_8);CompilationUnitcu=JavaParser.parse(args0);cu.accept(newVoidVisitorAdapter(){@Overridepublicvoidvisit(MethodDeclarationmd,Voidarg){System.out.println("Method:"+md.getName());super.visit(md,arg);}},null);}}
´ú?ÂëÖØ¹¹Ê¾Àý
ÏÂÃæÊÇÒ»¸öʹÓÃJavaparser¾ÙÐдúÂëÖØ¹¹µÄʾÀý¡£¼ÙÉèÎÒÃÇÓÐÒ»¸ö´óÐÍÀ࣬ÎÒÃÇÏ£Íû½«Æä²ð·ÖΪ¶à¸öСÀࣺ
importcom.github.javaparser.JavaParser;importcom.github.javaparser.ast.body.ClassOrInterfaceDeclaration;importcom.github.javaparser.ast.visitor.VoidVisitorAdapter;publicclassRefactoringExample{publicstaticvoidmain(Stringargs){Stringcode="publicclassLargeClass{publicvoidmethodA(){...}publicvoidmethodB(){...}}";CompilationUnitcu=JavaParser.parse(code);//ExtractmethodAintoanewclassVoidVisitorAdaptervisitor=newVoidVisitorAdapter(){@Overridepublicvoidvisit(ClassOrInterfaceDeclarationn,Voidarg){n.getMember("methodA").ifPresent(m->{ClassOrInterfaceDeclarationnewClass=newClassOrInterfaceDeclaration(n.getNameAsString()+"MethodA");newClass.addMember(m);n.removeMember(m);cu.addMember(newClass);});}};visitor.visit(cu,null);System.out.println(cu.toString());}}
Ãâ·ÑºÍ¿ªÔ´
¾«Æ·JavaparserÈËÆÞÊÇÒ»¸öÃâ·ÑºÍ¿ªÔ´µÄ¹¤¾ß£¬Óû§¿ÉÒÔ×ÔÓÉʹÓá¢Ð޸ĺͷÖÏí¡£ÕâÖÖ¿ª·ÅµÄÌØÕ÷£¬²»µ«½µµÍÁËÓû§µÄ?ʹÓñ¾Ç®£¬»¹Ôö½øÁ˹¤¾ßµÄһֱˢкÍÓÅ»¯¡£Í¨¹ý¿ªÔ´ÉçÇøµÄÅäºÏÆð¾¢£¬¾«Æ·JavaparserÈËÆÞÒ»Ö±Éú³¤£¬³ÉΪÊý¾Ý´¦Öóͷ£ÁìÓòµÄ±ê¸Ë¹¤¾ß¡£
ÔÚ¾«Æ·JavaparserÈËÆÞ¾ß±¸ÁËÔÆÔÆ¶àÊÊÓüÛÖµÖ®ºó£¬ÎÒÃǽÓÏÂÀ´À´Ì½ÌÖÔõÑù¸ßЧµØÊ¹ÓÃËü£¬ÒÔʵÏÖ×î¼ÑµÄÊý¾Ý´¦Öóͷ£ºÍÆÊÎöЧ¹û¡£Í¨¹ýÒÔϼ¸¸ö·½ÃæµÄÖ¸ÄÏ£¬Ä㽫Äܹ»³ä·ÖÑéÕ¹¾«Æ·JavaparserÈËÆÞµÄDZÁ¦£¬Ìá¸ßÊý¾Ý´¦Öóͷ£µÄ?ЧÂʺÍ׼ȷÐÔ¡£
¸ßЧµÄÊý¾ÝÆÊÎöÕ½ÂÔ
ΪÁ˸ßЧµØÊ¹Óþ«Æ·JavaparserÈËÆÞ¾ÙÐÐÊý¾ÝÆÊÎö£¬½¨Òé½ÓÄÉÒÔϼ¸ÖÖ²ß?ÂÔ¡£Ñ¡ÔñºÏÊʵÄ?ÆÊÎöÆ÷£¬Æ¾Ö¤Êý¾ÝµÄÃûÌÃÑ¡Ôñ×îÊÊºÏµÄÆÊÎöÆ÷£¬ÒÔÈ·±£ÆÊÎöµÄ׼ȷÐÔºÍËÙÂÊ¡£ºÏÀíÉèÖÃÆÊÎöÆ÷µÄ²ÎÊý£¬ÈçÌáȡ·¾¶¡¢¹ýÂËÌõ¼þµÈ£¬ÒÔÌá¸ßÆÊÎöЧÂÊ¡£¿ÉÒÔͨ¹ý±àд×Ô½ç˵¾ç±¾£¬ÊµÏÖÖØ´óµÄÊý¾ÝÆÊÎöºÍ´¦Öóͷ£¡£
ÀýÈ磬¹ØÓÚHTMLÊý¾Ý£¬¿ÉÒÔʹÓÃCSSÑ¡ÔñÆ÷À´×¼È·µØÌáÈ¡ËùÐèµÄÊý¾Ý£¬¶ø¹ØÓÚXMLÊý¾Ý£¬¿ÉÒÔͨ¹ýXPath±í´ïʽ¾ÙÐиßЧµÄÊý¾ÝÅÌÎʺÍÌáÈ¡¡£
У¶Ô£ºÎº¾©Éú(f3J1ePQDlzHhwh44q38w4Ima2E3XrDq)



