[英]How to get module name by class in Java 9?
如何在Java 9中按類獲取模塊名稱? 例如,讓我們考慮以下情況。 有兩個命名模塊 - ModuleA和ModuleB。 ModuleA對ModuleB一無所知。 ModuleB需要ModuleA。
ModuleA包含類:
public class ClassA {
public void printModuleName(Class klass) {
//how to get here name of the module that contains klass?
}
}
ModuleB包含類:
public class ClassB {
public void doIt() {
ClassA objectA = new ClassA();
objectA.printModuleName(ClassB.class);
}
}
怎么做?
要在Java9中通過Class
獲取Module
,可以使用getModule()
Module module = com.foo.bar.YourClass.class.getModule();
並在Module
類上進一步getName
以獲取Module
的名稱
String moduleName = module.getName();
一個可觀察的注意事項(在您使用命名模塊時不是這種情況)是getModule
返回此類或接口所屬的模塊。
- 如果此類表示數組類型,則此方法返回元素類型的Module。
- 如果此類表示基本類型或void,則返回
java.base
模塊的Module對象。- 如果此類位於未命名的模塊中,則返回此類的類加載器的未命名模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.