2012-07-03 42 views
1

我正在編寫黑莓應用程序 - 應用程序啓動後,我需要從數據庫中獲取.class文件(或者其他類似.COD文件的文件?) (我可能不得不創建一個從中獲取文件的網頁),然後實例化並調用其方法...任何人都可以幫助我嗎?請?!?在黑莓應用程序中實例化給定.class文件的對象

問題的關鍵在於允許學生在手機上獲取代碼並查看將返回的方法。老師會編寫一個簡單的編程方法,返回一些整數。學生需要能夠將該方法應用到應用程序中。他們可以看到代碼並輸入他們希望返回的方法。然後他們需要能夠運行該方法,以便能夠看到什麼方法返回...

基本上我想能夠單元測試一些不在我的黑莓手機上的代碼...

我看到了一個應用程序的廣告,做了類似的事情......我該怎麼做: .net for BlackBerry(C和VB.NET) 如果您正在學習ASP.NET,C#或Visual Basic。 NET,那麼此應用程序允許您將.NET代碼鍵入 您的BlackBerry®,並在幾秒鐘內查看輸出。這是一個很好的方式來嘗試.NET代碼片段 ,而無需啓動您的PC上的Visual Studio。

使用此應用程序編寫的代碼存儲在遠程服務器上,因此可以從其他設備012xx中調用,因此可以與此應用程序的其他用戶共享。

+2

請嘗試添加一些代碼或使用示例進行解釋。你的問題很難理解。 –

回答

1

BlackBerry JVM不支持反射,但是如果應用程序都擴展了基本應用程序中定義的類,並且您可以在下載的軟件中獲得該類的完全限定名稱,則可以執行類似操作:

abstract public class MyDemoObject { 
    abstract public void myDemoMethod(); 
} 

然後:

Class class = Class.forName("org.some.sample.ClassName"); 
MyDemoObject obj = (MyDemoObject)class.newInstance(); 
obj.myDemoMethod(); 

在下載的應用程序:

package org.some.sample 

public class ClassName extends MyDemoObject { 
    public void myDemoMethod() { 
     System.out.println("package org.some.sample.myDemoMethod()"); 
    } 
} 

有點笨重,但確實有效。 myDemoMethod將在基礎應用程序的上下文中運行,這對於瞭解用於BlackBerry OS的編程並不是一個糟糕的教訓。

+0

謝謝您的澄清 –

+0

感謝您的回覆...如何將該類添加到包中?我想讓學生運行應用程序,從數據庫中下載類,然後運行該類中的方法,並將結果顯示在應用程序中... – abiNerd

+0

該類放入包org.some.sample中的包中線。在java中,一個包真的只是一個名字空間的簡寫。在BlackBerry OS設備上安裝代碼的唯一方法是將其編譯爲COD。您可以使用CodeModuleManager隱藏COD,但我建議使用瀏覽器和JAD文件/ COD文件對來進行無線安裝。瀏覽器具有鏈接安裝的COD文件所需的軟件和權限。 – Richard

1

我認爲您需要將您的應用程序二進制文件放在服務器上,以使您的學生能夠下載它們的OTA。 (http://blackberrystorm.wikidot.com/setup-blackberry-ota-applications

然後,您可以使用全局事件在您的應用程序和其他應用程序之間進行通信。 (http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800620/What_Is_-_Global_Events_and_Global_Event_Listeners.html?nodeid=800527&vernum=0

但從其他應用程序,在設備上實時訪問方法..,我不認爲這是可能的。

+0

好的建議。你可以創建通用的啓動器,從網上下載特定的應用程序並啓動它。特定的應用可以創建特定的類。 –

+0

雖然我不需要服務器上的整個應用程序,但我只需要一個類...即使只是一個方法...然後將方法結果顯示在應用程序中...我基本上希望能夠在我的黑莓應用程序單元測試方法...這可能嗎? – abiNerd

+0

我不確定BB是否能夠做到這一點,即使有黑客入侵,我也會覺得累人,你是否考慮過在服務器上執行方法並將結果返回給設備?這種方式BB設備將像終端一樣工作。 –

相關問題