Ich überprüfe Java-Code und es gibt so viele Klassen zu überprüfen, habe ich eine Regex , um eine Methode in Java geschrieben, die nicht IO-Stream innerhalb endlich blockieren zu finden.Regex in Python für nicht übereinstimmende Wort
(?s)(?<=public|private|protected).
(?<!finally).*?.close\(\)\;
Aus irgendeinem Grund dies nicht funktioniert und es passt auch jene Methoden, die schließlich blockieren hat, wird auch so unten gefunden
public testMethod(){
InputStream stream = .....
try{
//do something
} finally {
if(stream != null){
stream.close();
}
}
}
Während nur unten abgestimmt werden sollte
public testMethod(){
InputStream stream = .....
//do something
if(stream != null){
stream.close();
}
}
Irgendwelche Zeiger?
Eine Methode in Java kann einfach ohne '(public | private | protected)' auch – anubhava
Danke für die Antwort, aber nehmen wir an, unsere Programmierer verwendet Zugriffsmodifikatoren für alle Methoden. –