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

JDA 5中SelectMenu创建失败求助:按Wiki代码编写报错

问题解决:JDA创建SelectMenu时报「构造器未定义」错误

问题背景

我按照JDA官方Wiki提供的代码编写程序时,在创建SelectMenu环节出现错误,报错信息为:The constructor SelectMenu(String) is undefined(构造器SelectMenu(String)未定义),不确定是否遗漏了配置或步骤。

问题原因

当前JDA版本(尤其是JDA 5及以上)中,SelectMenu的构造器被设置为私有,无法通过new SelectMenu("id")这种直接实例化的方式创建对象,必须使用官方提供的静态工厂方法构建。

正确实现代码

替换原来的构造方式,改用SelectMenu.create()静态方法来构建下拉菜单,示例代码如下:

// 构建SelectMenu实例
SelectMenu selectMenu = SelectMenu.create("menu-id")
    .setPlaceholder("请选择一个选项") // 设置菜单占位提示文本
    .addOption("选项A", "option-a") // 添加选项:显示文本 + 后端识别值
    .addOption("选项B", "option-b")
    .setMinValues(1) // 设置最少选择数
    .setMaxValues(1) // 设置最多选择数
    .build(); // 完成构建

// 将菜单放入ActionRow并发送
event.reply("请选择:")
    .addActionRow(selectMenu)
    .queue();

额外注意点

  • 确认你的JDA版本与参考的Wiki版本匹配:如果Wiki基于JDA 4编写,而你使用JDA 5+,API存在兼容性变更,建议查看对应版本的官方文档。
  • 所有交互组件(包括SelectMenu)必须包裹在ActionRow中才能发送,不能直接添加到消息内容里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:35:42