2016-04-16 3 views
-3

fand ich diese http://www.tutorialspoint.com/java/lang/class_getpackage.htmWie Pakete von einem Klassennamen bekommen in Java

package com.tutorialspoint; 

import java.lang.*; 

public class ClassDemo { 

    public static void main(String[] args) { 

    try { 
     Class cls = Class.forName("java.lang.Integer"); 

     // returns the name and package of the class 
     System.out.println("Class = " + cls.getName()); 
     System.out.println("Package = " + cls.getPackage()); 
    } 
    catch(ClassNotFoundException ex) { 
     System.out.println(ex.toString()); 
    } 
    } 
} 

Diese getpackage Methode erfordert ich weiß schon, die Paketnamen und die Klassennamen die Paketnamen zu erhalten.

Was ich wünsche ist eine getpackages-Methode, die das ganze Paket eines gegebenen Klassennamens zurückgibt.

+0

Sie müssen wahrscheinlich durch was auch immer zu durchlaufen wird von den 'GetPackages zurückgegeben()' Methode Ihrer ' ClassLoader'. –

+0

Eine Klasse kann nur eine Paketdeklaration haben, was bedeutet dann das gesamte Paket eines bestimmten Klassennamens? –

+0

Ihre Aussage ist unwahr. Die Methode 'Class.forName()' erfordert, dass Sie das Paket kennen, aber es gibt viele andere Möglichkeiten, eine 'Klasse' zu ​​erhalten, am offensichtlichsten von einer Instanz. – EJP

Antwort

0

können Sie verwenden getPackage(). GetName() der Klasse Class

Beispiel

public class Test { 

    public static void main(String args[]) { 
     Test t = new Test(); 
     String packageName = t.getClass().getPackage().getName(); 
     System.out.println("Package Name = " + packageName); 

     //and without any instance: 
     String packageName2 = Test.class.getPackage().getName(); 
     System.out.println("Package Name no instance = " + packageName2);  } 
} 
+0

Sie müssen instanziieren: können wir nicht ohne? – user310291

+0

@ user310291 Sicher, verwenden Sie einfach 'Test.class.getPackage(). GetName()' –

+0

@MarkRotteveel Wie genau hilft das? Der Paketname der Klasse muss entweder in dem von Ihnen erwähnten Code oder in einer 'import'-Anweisung angegeben werden. – EJP