我试图在这个整数的末尾添加一个L,我得到一个错误,使它变长。我需要它以整数的形式... 有人可以帮帮我吗? 这是我的代码:
scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
@Override
public void run() {
@SuppressWarnings("unused")
BukkitTask task = new Timer(JavaPlugin.getPlugin(GodSends.class), amountOfChest).runTaskTimer(JavaPlugin.getPlugin(GodSends.class), 20, timeBetweenChest);
String startMSG = plugin.getConfig().getString("startMSG");
getServer().broadcastMessage(startMSG);
}
}, 0L, timeBetween); //< this needs to have an L at the end, I have it set to 60000 in the config, but I cant seem to get the L after it.
虽然,请记住,它必须严格地是 INTEGER !
编辑:我需要它成为这样的东西:
{LinkOpenTag}
答案 0 :(得分:2)
您使用long
的API似乎要求最后两个参数的类型为int
。由于long
可以隐含地放入timeBetween
,因此传递0
会很好。
第二个参数也是如此。您也可以在其中传递0L
而不是long
。它也是一样的。基本上,你通过在这里显式传递 long literal 来获得任何东西。如果您想为Event Bus
指定一个超出整数范围的字面值,则它们会有意义。
答案 1 :(得分:1)
您似乎试图通过放置&#34; L&#34;来尝试在运行时将int
变量转换为long
变量。最后&#39;整数。这不是正确的方法。
将L放在java程序中的数字整数文字的末尾将导致编译器将其视为long
值,而不是int
值。}, 0L, timeBetween);
但是你并没有为编译器提供文字,所以&#34; L&#34;符号对你没有帮助。
我认为你需要的是将你的int转换成你的方法,无论它是什么 - 所以而不是
}, 0L, (long) timeBetween);
你应该
scheduler.scheduleSyncRepeatingTask()