Ich bin neu in der Entwicklung von Eclipse-Plugins und versuche eine IMethod in eine String-Repräsentation des vollständigen Methodennamens zu konvertieren. I.E.Verwenden Sie JDT, um den vollständigen Methodennamen zu erhalten
my.full.package.ClassName.methodName(int param, String string)
Bisher musste ich meine eigene Lösung rollen lassen. Gibt es einen besseren Weg?
private static String getMethodFullName(IMethod iMethod)
{
String packageString = "[Default Package]";
try {
IPackageDeclaration[] declarations = iMethod.getCompilationUnit().getPackageDeclarations();
if(declarations.length > 0)
{
packageString = declarations[0].getElementName();
}
} catch (JavaModelException e) {
}
String classString = iMethod.getCompilationUnit().getElementName();
classString = classString.replaceAll(".java", "");
String methodString = iMethod.getElementName() + "(";
for (String type : iMethod.getParameterTypes()) {
methodString += type + ",";
}
methodString += ")";
return packageString + "." + classString + "." + methodString;
}
Das ist nett, ich habe die Signature-Klasse nie zuvor gesehen – iain