gpt4 book ai didi

java - 为什么我不能在 j2me 中使用多态性?

转载 作者:行者123 更新时间:2023-11-30 11:37:54 25 4
gpt4 key购买 nike

我正在使用 LWUIT 作为我的 j2me 项目的 GUI 库。我使用 LWUIT 资源编辑器生成了一个 netbeans 项目。我有一个单独的项目,我在其中为我的 j2me 程序编写了额外的组件。

在那个单独的项目中,我有一个类 TextForm extends Form,其中 Form 是一个标准的 LWUIT 表单。当我尝试这样做时:

TextForm a = new TextForm();
a.show();

一切正常。但是当我这样做时:

Form a = new TextForm();
a.show();

我有一个编译时错误:

Error preverifying class userclasses.StateMachine
VERIFIER ERROR userclasses/StateMachine.onConnect()V:
Cannot find class client/lwuit/components/TextForm

(TextForm 类包含在我带有组件的单独项目的 client.lwuit.components 包中)。那么,这个问题有什么解决办法吗?

更新:
a.show() 方法是标准的 Form 方法。它负责显示表单。这在这里并不那么重要。

最佳答案

对于任何关心的人:错误出在项目的 build-impl.xml 文件中(它的位置是/nbproject/build-impl.xml)。它生成不正确。错误在行中

<nb-preverify srcdir="${preverify.sources.dir}" destdir="${preverify.classes.dir}" classpath="${platform.bootclasspath}:${extra.classpath}" configuration="${platform.configuration}" platformhome="${platform.home}" platformtype="${platform.type}" commandline="${platform.preverifycommandline}"/>

查看此标记的名为类路径的属性:

classpath="${platform.bootclasspath}:${extra.classpath}" 

为了告诉预验证者您包含的库在哪里,请将此属性更改为以下形式:

classpath="${platform.bootclasspath}:${extra.classpath}:${libs.classpath}"

如果查看 project.properties 文件(它与 build-impl.xml 位于同一目录中),您可以看到 libs.classpath变量提供了您包含的所有项目库的路径。

P.S.: 是的,这似乎很奇怪,这会以这种方式影响多态性,但它解决了问题...

关于java - 为什么我不能在 j2me 中使用多态性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com