【问题标题】:Expecting top level declaration error on top level declaration期望顶级声明出现顶级声明错误
【发布时间】:2018-08-23 02:14:53
【问题描述】:

我是 Kotlin 的新手,而且,伙计,这太棒了!

我正在使用 JDA 和 Maven 创建一个 Discord 机器人,它可以工作,但是,我创建了一个基本的命令处理程序,现在,我收到很多错误,在顶级声明中显示“期望顶级声明” . ????

这是我的代码(顺便说一句,我已经发现 Array<String?> 错误):

package com.blueslimee.kirani.listeners

import net.dv8tion.jda.core.entities.*
import net.dv8tion.jda.core.hooks.*
import net.dv8tion.jda.core.JDA
import net.dv8tion.jda.core.events.message.MessageReceivedEvent
import com.blueslimee.kirani.utils.KiraniLogging
import com.blueslimee.kirani.KiraniCommand
import com.blueslimee.kirani.utils.Registry

class MessageListener() : ListenerAdapter() {
  override fun onMessageReceived (event: MessageReceivedEvent) {
    val jda: JDA = event.getJDA()
    // todo: cmds guild-only  event.isFromType(ChannelType.TEXT)
    if (!event.getAuthor().isBot()) {
        var msgContent: String? = event.getMessage()
        if (msgContent === null) {
          return 
        }
        var args: Array<String?> = msgContent!!.split(" ")
        var firstArg: String? = args[0]
        if (!firstArg!!.startsWith("k-", true)) {
          return 
        }
        firstArg = firstArg!!.replace("k-", "", true)
        var cmde: KiraniCommand? = Registry.getCommand(firstArg)
        if (cmde  != null) {
          try {
            cmde!!.run(jda, event, args)
          } catch (e: Exception) {
            event.getChannel().sendMessage("Oopsie Woopsie, um erro ocorreu! Meu dono já foi reportado sobre, peço que aguarde.").queue()
            e.printStackTrace()
          }
       }
    }
  }
}

谢谢!

【问题讨论】:

  • 请编辑您的问题,将您的源代码作为其中的一部分,而不是作为外部链接。另外,请指出出现错误的特定行。
  • @yole 代码很大,所以 ????

标签: kotlin


【解决方案1】:

使用

var args: List<String> = msgContent.split(" ").toList()

而不是

var args: Array<String?> = msgContent!!.split(" ")

【讨论】:

  • 如果没有内容(只有一个嵌入),消息内容可以为空,并且它可能在不使用安全调用或使用!!的情况下调用可能为空的变量上的函数? @sasikumar
猜你喜欢
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
相关资源
最近更新 更多