類<?> clazz = IWorkbench.class ;
不知道有沒有什么API可以幫我獲取class的URI,這個URI是用來打開一個編輯器的
嘗試制作自己的網址并成功,但我仍然想使用eclipse API
public static IEditorPart openClassInEditorFromURI(URI uri) {
IWorkbenchPage page = BitFanUI.getLastActivateWindow().getActivePage() ;
if( page == null ) {
return null ;
}
try {
IFileStore fileStore = EFS.getStore( uri ) ;
return IDE.openEditorOnFileStore(page, fileStore);
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
uj5u.com熱心網友回復:
通常,(運行時)類沒有 URI。(您可以從位元組陣列中動態定義一個類......)
話雖如此,大多數以正常方式加載的類都有一個資源 URI。如果您知道完全限定的類名和加載它的類加載器,您應該能夠執行以下操作:
將類完全限定名稱轉換為其資源路徑。例如,“com.example.MyClass”通常會映射到“/com/example/MyClass.class”。
用于
classloader.getResource(resourcePath)獲取 URI。
但是請注意,URI 可能無法在其他背景關系中決議。
我不認為 Eclipse 提供了執行上述操作的 API。(我找不到一個。)
更新- 如果您嘗試以編程方式從類的全名中查找源 URI,那么這可能會提供答案:
- 如何從完整的類名以編程方式在 Eclipse 插件中查找 .java 檔案?
請注意,如果您Class在 Eclipse 插件的背景關系中確實有一個物件(正如您的代碼片段所暗示的那樣),那么您可以從該物件Class<?> clazz = IWorkbench.class中提取完整的類名。Class但這聽起來有點奇怪……
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/431331.html
下一篇:為什么git拒絕連續兩次推送?
