Wie man Package-Namen der Quell-Klasse-Datei in Android ?
Ich bin mit nur einem Projekt in port lite-und Vollversionen für Sie, dass ich nur die Aktualisierung der Manifest-Datei package-Namen.
Meine Projekt-Struktur ist wie folgt
Meine App
|_src
|_com.Beispiel.Anwendung
|_MyClass.java
und mein Manifest-Paket einen anderen Namen.
package="com.Beispiel.myapplite"
Bin ich mit einer Bibliothek-Projekt, in das ich will, package-Namen der Klassen, die ich benutze in MyApp.
Habe ich dieses
System.out.println("Package Name " + context.getPackageName());
Aber Ihre mir einer Manifest-Datei package-name-Wert, dh. com.Beispiel.myapplite
Ich will MyClass.java package-Namen. dh. com.Beispiel.myapp
Auch ich bin mir bewusst, über dieses
MyClass mClass = new MyClass();
Package pack = mClass.getClass().getPackage();
Aber ich kann nicht verwenden diesen Ansatz, da bin ich mit dem folgenden Ansatz, um class-Datei in "meine Bibliothek" - Projekt
Class c = Class.forName("package_name.MyClass");
How to get Paketnamen MyClass.java Datei programmgesteuert?
Es ist nicht klar, warum Sie verwenden würden
new MyClass().getClass()
(effektiv), anstatt nur MyClass.class
... oder warum ist das nicht genug für Sie. Ihre Erklärung der Verwendung Class.forName
nicht wirklich erklären, was Sie zu tun versuchen. Was tun Sie Wünsche, die Sie tun könnten, dass Class.getPackage()
nicht für Sie tun?Ich bin mit Bibliothek-Projekt, zu verwenden MyClass in "meine Bibliothek" - Projekt habe ich zugreifen müssen, ist es Klasse.forName("Paketname.MyClass");, weil-Bibliothek-Projekt dosent wissen über MyClass.java
Auch kann ich nicht erstellen-Objekt von MyClass vor dem Zugriff auf Sie.
InformationsquelleAutor Mac | 2013-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte hilfreich Sein
Werden Sie sich bewusst, dass Klasse.getPackage() kann null zurückgeben, wenn dem class-loader für die Klasse nicht registrieren, das Paket. Dies erfolgt in der Regel innerhalb der ClassLoader durch die Verwendung von ClassLoader.definePackage(). Sie können dies in Aktion zu sehen in Beispiel URLClassLoader. Wenn Sie nicht die Installation einer custom ClassLoader, Sie sollten keine Probleme haben, als die Standard-ClassLoader definieren Pakete beim laden der Klassen.
Was ist die Ausgabe?
InformationsquelleAutor Ayaz Ali Khatri
versuchen, diese,
verwenden Sie einfach
.getClass().getPackage().getName()
auf jede Instanz, oder verwenden Sie[YourClassName].class.getPackage().getName()
InformationsquelleAutor Darshit Chokshi
funktioniert definitiv.
InformationsquelleAutor Kaidul
Einfaches Beispiel einer Klasse
NotificationListener
:Ausgabe:
InformationsquelleAutor V. Kalyuzhnyu