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

JDA创建SelectOption类型List/Collection集合报错的解决方法

报错原因

这个报错和你创建存储SelectOption的List/Collection集合没有关系,问题出在SelectOption的实例化环节:
你调用的SelectOption(java.lang.String, java.lang.String)构造方法是受访问保护的成员,修饰符为protected,仅允许JDA框架内部同包类、SelectOption的子类调用,外部业务代码没有权限直接访问这个构造方法。

修复方法

JDA官方没有对外开放SelectOption的构造方法,而是提供了公开的静态工厂方法来创建实例,不要直接用new调用构造方法,改用SelectOption.of(String label, String value)即可正常创建对象。

修正后的代码示例:

List<SelectOption> li = new ArrayList<>();
// 第一个参数是用户在下拉菜单中看到的选项文本,第二个参数是选项选中后提交到后端的值
li.add(SelectOption.of("选项展示文本", "选项对应提交值"));
使用注意
  • 传入的label和value都不能是空字符串,其中label长度不能超过25字符,value长度不能超过100字符
  • 如果需要给选项增加说明文本、设置默认选中状态、绑定表情图标,可以对of方法返回的实例链式调用对应配置方法,示例:
li.add(SelectOption.of("同意社区规则", "rule_agree")
        .withDescription("确认已完整阅读并自愿遵守社区所有管理规范")
        .withDefault(true));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:12:18