Je pense que j'ai besoin d'un programme pour extraire les méthodes publiques java au travail, alors je l'ai écrit Essayez de mettre en œuvre à l'aide des fonctions de flux NewIO et Java8 de Java7
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("Renvoyer la signature: %s nom de la méthode:%argument de s:%s",m.group(1),m.group(2),m.group(3));
}
return "";
}
}
Renvoyer la signature:Nom de la méthode:Argument AbstractScriptEngine:
Renvoyer la signature:Nom de la méthode AbstractScriptEngine:argument:Bindings n
Renvoyer la signature:nom de la méthode void:Argument setContext:ScriptContext ctxt
Renvoyer la signature:Nom de la méthode ScriptContext:Argument getContext:
Renvoyer la signature:Nom de la méthode de liaisons:Argument getBindings:int scope
Renvoyer la signature:nom de la méthode void:Argument setBindings:Bindings bindings, int scope
Renvoyer la signature:nom de la méthode void:argumenter:String key, Object value
Renvoyer la signature:Nom de la méthode objet:obtenir un argument:String key
Renvoyer la signature:Nom de la méthode objet:argument d'évaluation:Reader reader, Bindings bindings
Renvoyer la signature:Nom de la méthode objet:argument d'évaluation:String script, Bindings bindings
Renvoyer la signature:Nom de la méthode objet:argument d'évaluation:Reader reader
Renvoyer la signature:Nom de la méthode objet:argument d'évaluation:String script
Il semble que les informations du constructeur ont également été acquises, mais je ne me soucierai pas des détails (hé)
Recommended Posts