So finden Sie den Paket-Namen der name einer Klasse?

Einem gegebenen Klassennamen als string, wie bekomme ich die package-Namen der es zur Laufzeit ? Ich habe nicht den vollständig qualifizierten Namen mit der Paketname + Klassenname. Einfach nur den Namen der Klasse.

Möchte ich die package-Namen verwendet werden Class.forName() Methode.

Ich bin völlig in Ordnung mit der Suche nach der ersten passenden Paket-Namen (falls mehrere Pakete die gleiche Klasse).

Irgendwelche Ideen?

UPDATE

Ich NICHT über eine Instanz der Klasse zu arbeiten. Meine Forderung ist, eine Klasse zu erstellen mit der Class.forName() Methode. Aber ich habe einfach NUR den Namen der Klasse als string. Ich brauche einige Weg, um die Schleife, obwohl die Pakete und zu identifizieren, wenn die Klasse, ich habe gehört das Paket.

Den stack-trace der exception

Exception in thread "main" java.lang.ClassNotFoundException: MyAddressBookPage
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
  • Sie brauchen nicht eine Klasse-Instanz-Klasse.Vorname zu arbeiten. Lesen Sie die Kommentare in meiner Antwort
  • Warum sind Sie der Abstimmung alle down? Wir versuchen nur zu helfen. Wenn jeder gibt ähnliche Antworten dann bedeutet es, dass Sie nicht in der Lage dein problem zu beschreiben, gut und es ist Eure Schuld in den ersten Platz..
  • Ein Beispiel, was du meinst in Bezug auf die Klassennamen vs fully qualified class name kann hilfreich sein bei der Aufklärung der Verwirrung, z.B. "ich habe nur 'Baz', ich don T haben 'com.foo.bar.Baz'.
  • es ist nicht ihm, sondern an mir. Ich bin voting ab, weil Sie nicht die Beantwortung seiner Frage. Nehmen Sie es nicht persönlich! 🙂 Wenn Sie erst einmal bearbeitet werden, um sinnvolle Antworten ich werde gehen Sie zurück und entfernen Sie die downvote, wo es nicht mehr anwenden. Aber derzeit sind einfach nicht gut Antworten. So starten wir die Reise von keine Antwort, um beste Antwort auf das web. Wieder, nehmen Sie es nicht persönlich.
  • Es war nicht ich, der nach unten stimmten die Antworten.
  • sorry für das Missverständnis. Es ist ein bisschen einschüchternd, um zu sehen, meine ohnehin schon niedrige ansehen gehen. @Grundlefleck vielen Dank für die Beantwortung. 😉
  • Im Allgemeinen versuche ich zu vermeiden, nach unten Abstimmung, sondern weil es so viele ähnlich falschen Antworten, keine Antworten von Ihnen positiv bewertet werden, und ich fand die Frage ganz klar, ich fühlte es war die richtige Wahl. Leider konnte ich nicht erkennen, es gibt ein Zeitlimit auf die Beseitigung der downvote, so kann ich nicht rückgängig machen, gibt es jetzt einige Antworten von Ihnen positiv bewertet werden. Tut mir Leid, dass.
  • Wenn ich richtig raten, können Sie upvote Sie nach einer Bearbeitung.
  • Sieht aus wie das der Fall ist. Nun gibt es vernünftige Antworten, die ich von Ihnen positiv bewertet werden wird, entfernen Sie die downvotes, wo ich kann (einige benötigen noch Bearbeiten, wie du sagst).

Schreibe einen Kommentar