将Java转换为Kotlin(使用函数作为参数)
我想要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");
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很有用谢谢你^^^我需要了解很多,因为我真的想写更好的代码