将Java转换为Kotlin(使用函数作为参数)

将Java转换为Kotlin(使用函数作为参数),kotlin,Kotlin,我想要Kotlin中的代码: public class LobbySwitcherGui extends AGUI { public LobbySwitcherGui() { super(27, "someTitle"); setItem(0, new ItemStack(Material.NETHER_STAR), player -> { player.sendMessage("Some message");

我想要Kotlin中的代码:

public class LobbySwitcherGui extends AGUI
{
    public LobbySwitcherGui()
    {
        super(27, "someTitle");

        setItem(0, new ItemStack(Material.NETHER_STAR), player -> {
            player.sendMessage("Some message");
        });
    }
}
但是如果我把它转换成IntellIJ,它对我不起作用

class LobbySwitcherGui : AGUI(27, "someTitle")
{
    init {
        setItem(0, ItemStack(Material.NETHER_STAR), { player -> player.sendMessage("Some message") })
    }
}
最后一个论点不起作用,我解决不了


AGUI类是这样的:

kotlin可以通过这种方式创建可运行文件和函数、双函数等。。 您似乎创建了一个名为
YourGUIAction
,请检查是否可以用
action:(Player)->Unit

或者一般来说
(ArgumentTypes)->ReturnType

,但我还需要在这之后运行此代码。我是这样做的:我把单位保存在一个HashMap中。现在我只需要执行我不认为你救了这个单位。。这可能会让人感到困惑,kotlin中的单元就像java中的void,这只是一种告诉您,如果您的意思是操作类型为
(Player),则没有返回值的方式->Unit
或类似的名称,您可以这样称呼它,它应该可以正常工作,但我确实将它保存在hashmap val actions:MutableMap Unit>中,但我如何称呼它可能有用:您(可能)这样称呼它:
map[key]!!(玩家)
val action=map[key]
,因为get on a map返回一个可空值,然后用
action(player)
调用action,这对meee很有用谢谢你^^^我需要了解很多,因为我真的想写更好的代码