0
A
回答
1
如果你不知道包 - 只有類的名字,你可以試試這個,使用Spring框架:
List<Class> classes = new LinkedList<Class>();
PathMatchingResourcePatternResolver scanner = new
PathMatchingResourcePatternResolver();
// this should match the package and the class name. for example "*.Bar"
Resource[] resources = scanner.getResources(matchPattern);
for (Resource resource : resources) {
Class<?> clazz = getClassFromFileSystemResource(resource);
classes.add(clazz);
}
public static Class getClassFromFileSystemResource(Resource resource) throws Exception {
String resourceUri = resource.getURI().toString();
// finding the fully qualified name of the class
String classpathToResource = resourceUri.substring(resourceUri
.indexOf("com"), resourceUri.indexOf(".class"));
classpathToResource = classpathToResource.replace("/", ".");
return Class.forName(classpathToResource);
}
兩種以上的方法給你的類列表名爲「酒吧」(他們可能不止一個!)。
然後它更容易
expectedSuperclass.isAssignableFrom(yourClass);
1
是的,反映的是答案:
Class barClass = Class.forName("some.package.Bar"); // will throw a ClassNotFoundException if Bar is not a valid class name
Class fooClass = some.package.Foo.class;
assert fooClass.isAssignableFrom(barClass); // true means Bar extends (or implements) Foo
相關問題
- 1. 對象類型檢測層次
- 2. 層次結構,以Java對象
- 3. Java層次結構和對象數組
- 4. 查找對Java層次標準項目
- 5. 從僞層次創建嵌套對象
- 6. 從輸出創建對象層次?
- 7. java對象的層次結構,並通過對象的功能
- 8. chrome.storage.sync.get與外層對象同步,但內部對象不同步?
- 9. 類別層次 - 檢查
- 10. JavaScript對象層次簡化
- 11. C#對象層次結構
- 12. 對象層次實現
- 13. 對象,出現外父層
- 14. 檢索對象的外部輪廓
- 15. 訪問檢票組件層次結構外的Wicket頁面對象
- 16. 如何從內部對象訪問外部父對象javascript
- 17. 從內部類對象中獲取外部類對象
- 18. 從內部類對象中獲取外部類對象
- 19. 檢查是否創建了沒有外部鏈接的對象
- 20. 分層對象設計(Java)
- 21. 對象層次對「案例」報表
- 22. 檢查外鍵對象設置
- 23. 在層次結構外調用對象的超類方法
- 24. 如何使用java從外部服務器檢查tomcat/mysql
- 25. 如何從SQL查詢構建對象層次結構? (對於WPF TreeView)
- 26. 從外部源檢查文件版本?
- 27. 從外部檢查Drupal驗證PHP
- 28. 的Javascript:查看從外部源檢索
- 29. 檢查空值從外部服務
- 30. 在java中拋出內部對象 - 未經檢查的異常
你有一個完整的包名? – 2009-12-29 06:36:15
我在想什麼,有人告訴我「程序allnighter需要一個bar並且什麼都不會返回,allnighter確實......用屬性a,b,c的Foo調用allnighter。我的程序應該生成這個代碼。它大部分都是這樣做的,但並不總是處理好繼承。 – 2009-12-29 06:57:39