1

我正在编写一个黑莓应用程序 - 应用程序启动后,我需要从数据库中获取一个 .class 文件(或者可能是 .COD 文件之类的其他文件?)(我可能必须创建一个网页来获取文件)然后实例化它并调用它的方法......有人可以帮助我吗?请?!?

重点是让学生在手机上获取代码并查看方法会返回什么。老师会编写一个返回一些整数的简单编程方法。学生需要能够将该方法应用到应用程序中。他们可以看到代码并输入他们期望方法返回的内容。然后他们需要能够运行该方法,以便能够看到该方法返回什么......

基本上我希望能够对一些不在我的黑莓上的代码进行单元测试......

我看到了一个应用程序的广告,它做类似的事情......我该怎么做:.net for BlackBerry(C 和 VB.NET) 如果你正在学习 ASP.NET、C# 或 Visual Basic.NET,那么这个应用程序允许您在 BlackBerry® 上键入 .NET 代码,并在几秒钟内查看输出。这是试用 .NET 代码片段的绝佳方式,无需在 PC 上启动 Visual Studio。

使用此应用程序编写的代码存储在远程服务器上,因此可以从其他设备调用,因此可以与此应用程序的其他用户共享。

4

2 回答 2

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

但是在设备上实时访问其他应用程序的方法..,我认为这是不可能的。

于 2012-07-03T13:37:44.173 回答
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 编程来说是不错的一课。

于 2012-07-03T17:06:19.683 回答