Ich glaube, ich brauche ein Programm, um öffentliche Java-Methoden bei der Arbeit zu extrahieren, also habe ich es geschrieben Versuchen Sie, mithilfe der NewIO- und Java8-Stream-Funktionen von Java7 zu implementieren
JavaFileAnalyser.java
package triple;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class JavaFileAnalyser {
private static Pattern PATTERN ;
public static void main(String args[]) throws Exception{
PATTERN = Pattern.compile(".*public(.*)(?:\\s|\\t)(.*)\\((.*)\\).*");
List<String> list = Files.newBufferedReader(
Paths.get("C:/Java/jdk1.8.0_102/src/javax/script/AbstractScriptEngine.java"),
Charset.forName("UTF-8"))
.lines()
.filter(JavaFileAnalyser::isMethod)
.map(JavaFileAnalyser::parse)
.collect(Collectors.toList());
Files.write(Paths.get("C:/Users/****/workspace/FileOpe/result/result.txt"),
list,
Charset.forName("UTF8"),
StandardOpenOption.CREATE);
}
public static boolean isMethod(String str){
if(PATTERN.matcher(str).find()){
return true;
}
return false;
}
public static String parse(String str){
Matcher m = PATTERN.matcher(str);
if(m.find()){
return String.format("Unterschrift zurücksenden: %s Methodenname:%s Argument:%s",m.group(1),m.group(2),m.group(3));
}
return "";
}
}
Unterschrift zurücksenden:Methodenname:AbstractScriptEngine-Argument:
Unterschrift zurücksenden:Name der AbstractScriptEngine-Methode:Streit:Bindings n
Unterschrift zurücksenden:Name der ungültigen Methode:setContext-Argument:ScriptContext ctxt
Unterschrift zurücksenden:Name der ScriptContext-Methode:getContext-Argument:
Unterschrift zurücksenden:Name der Bindungsmethode:getBindings-Argument:int scope
Unterschrift zurücksenden:Name der ungültigen Methode:setBindings-Argument:Bindings bindings, int scope
Unterschrift zurücksenden:Name der ungültigen Methode:Argument setzen:String key, Object value
Unterschrift zurücksenden:Name der Objektmethode:Argument bekommen:String key
Unterschrift zurücksenden:Name der Objektmethode:eval Argument:Reader reader, Bindings bindings
Unterschrift zurücksenden:Name der Objektmethode:eval Argument:String script, Bindings bindings
Unterschrift zurücksenden:Name der Objektmethode:eval Argument:Reader reader
Unterschrift zurücksenden:Name der Objektmethode:eval Argument:String script
Es scheint, dass die Informationen des Konstruktors ebenfalls erfasst wurden, aber ich werde mich nicht um die Details kümmern (hey)
Recommended Posts