Sie definitiv nicht wollen, getQualifiedName
verwenden: es wird überraschende Ergebnisse in einigen Fällen produzieren. Zum Beispiel ist es unmöglich, den letzten Teil des Paketnamens und die Elternklasse der inneren Klassen zu unterscheiden: in "java.util.Map.Entry" ist "Map" ein Teil des Paketnamens oder der Name der enthaltenden Klasse für Entry
? Was wäre, wenn statt "java.util.Map.Entry" "a.b.c.d" (ein typischer Fall für von Proguard verarbeiteten Code) ist?
Ebenso für die Klassen in Standard (unbenannt) Paket gibt es nichts vor dem Punkt sein ...
Mit getQualifiedName
Ihrem Parsing-Code wird komplex und unzuverlässig sein. Im Allgemeinen, wenn Sie String-Darstellungen von Element verwenden müssen, tun Sie etwas falsch.
Dies ist das richtige Muster Paket von element
für immer:
Element enclosing = element;
while (enclosing.getKind() != ElementKind.PACKAGE) {
enclosing = enclosing.getEnclosingElement();
}
PackageElement packageElement = (PackageElement) enclosing;
Das wird richtig Paket erhalten in alle Fälle.
danke! Gut zu wissen – xetra11