You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codename One传递theme参数至AjoutBlogForm时类型不兼容报错

问题解决:类型不匹配错误(resources cannot be converted to Blog)

错误原因

你的AjoutBlogForm类构造函数声明接收Blog类型参数,但在MyApplication的start方法中传入的是theme(属于Resources类型),两者类型不兼容导致编译错误。而且从AjoutBlogForm的代码来看,构造函数并未使用传入的Blog参数,该参数属于冗余定义。

解决方案

方案1:修改构造函数接收Resources参数

如果需要在表单中使用主题资源,直接调整构造函数参数类型为Resources,可将主题传递给父类或用于组件样式设置:

public class AjoutBlogForm extends BaseForm {

    Form current;
    // 修改构造函数参数为Resources类型
    public AjoutBlogForm(Resources theme) {
        super("Newsfeed", BoxLayout.y());
        // 可在此处使用theme设置表单主题
        setTheme(theme);
        
        Toolbar tb = new Toolbar(true);
        current = this ;
        setToolbar(tb);
        getTitleArea().setUIID("Container");
        setTitle("Ajout Blog");
        getContentPane().setScrollVisible(false);
        
        // 后续组件代码保持不变
    }

    // 其余方法保持不变
}

方案2:改为无参构造函数

如果无需传递任何参数,直接改为无参构造,调用时无需传参:

public class AjoutBlogForm extends BaseForm {

    Form current;
    public AjoutBlogForm() {
        super("Newsfeed", BoxLayout.y());
        
        Toolbar tb = new Toolbar(true);
        current = this ;
        setToolbar(tb);
        getTitleArea().setUIID("Container");
        setTitle("Ajout Blog");
        getContentPane().setScrollVisible(false);
        
        // 后续组件代码保持不变
    }

    // 其余方法保持不变
}

同时修改MyApplication的start方法:

public void start() {
    if(current != null){
        current.show();
        return;
    }
    // 调用无参构造方法
    new AjoutBlogForm().show();
}

方案3:若需传递Blog参数(编辑场景)

如果该表单用于编辑博客,调用时需传入Blog对象(比如新建空对象):

public void start() {
    if(current != null){
        current.show();
        return;
    }
    // 传入空Blog对象
    new AjoutBlogForm(new Blog()).show();
}

注意此场景下,需要在AjoutBlogForm构造函数中使用传入的Blog对象,比如填充表单字段。

验证修改

完成上述任意一种修改后,重新编译项目即可正常加载表单并实现博客添加功能。

内容的提问来源于stack exchange,提问作者Ons kh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:32:27