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

时间:2018-09-16 02:30:20

标签: kotlin

我想要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类是这样的:https://ghostbin.com/paste/gjdzo

1 个答案:

答案 0 :(得分:1)

kotlin可以通过这种方式创建Runnables和Function,BiFunction等。 您似乎创建了一个称为YourGUIAction的东西,请检查是否可以将其替换为action: (Player) -> Unit 或一般(ArgumentTypes) -> ReturnType