我可能只是愚蠢,但我试图创建一个变量,我收到此错误:
Syntax error on token "continue", invalid VariableDeclaratorId
Run Code Online (Sandbox Code Playgroud)
代码行是
static boolean continue = false;
Run Code Online (Sandbox Code Playgroud)
出于某种原因,如果我改变变量名称它似乎工作,但我真的更喜欢使用变量名称"继续",因为它比"续"或任何其他变体更容易记住,这对我来说很重要.
那么,有什么办法可以声明这个变量吗?
我正在创造一些魔法咒语,显然我希望每次使用之间都有延迟.
现在根据谷歌,一秒钟内有10亿纳秒.
但是,魔法法术会在不到两秒钟后重新充电.
@EventHandler
public void onInteract(PlayerInteractEvent e){
Player p = e.getPlayer();
if (p.getItemInHand().getType().equals(Material.BLAZE_ROD)){
{
{
if (!kam.containsKey(p.getName())) kam.put(p.getName(), (long) 0);
if (kam.get(p.getName()) < System.nanoTime()){
kam.remove(p.getName());
kam.put(p.getName(), System.nanoTime() + (1000000000 * 30));
//Do magic spell attack here.
}
}
}else{
p.sendMessage(ChatColor.AQUA + "Skill recharging!");
}
}
Run Code Online (Sandbox Code Playgroud)
显然我的代码试图添加System.nanoTime()加30秒,然后检查当前系统nanoTime是否大于我放入hashmap的系统,如果是,则执行该法术.
对于我正在进行的计算,我制作了一个方法来计算哪个数是两个中最低的:
public static double min(double one, double two){
if (one < two) return one; //Return one if it is less than two
if (two < one) return two; //Return two if it is less than one
if (one == two) return two; //Return two, because it's the same.
}
Run Code Online (Sandbox Code Playgroud)
但是,Eclipse告诉我"这个方法必须返回double类型".
我对此感到困惑,因为该方法必须返回双打!数字可以更大,更小或等于另一个数字.因此,没有返回双精度的实例.
Eclipse为什么抱怨这个?
我想有一个while循环,如果某个条件为真,不要在它下面执行代码,然后继续while循环.这是一些伪代码:
boolean poop
while (poop){
if (player.isAwesome()){
Continue doing while loop but do not execute below code
}
poop = false;
}
Run Code Online (Sandbox Code Playgroud)
是的,我可以使用这样的东西:
boolean poop
while (poop){
boolean stopPoop = false;
if (player.isAwesome()){
stopPoop = true;
}
if (!stopPoop){
poop = false;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这有点混乱和不方便,我想知道是否有更好的方法?
我有一个String读取"You cannot sit on that " + entity.getEntityType().toLowerCase() + "!";.返回大写,这就是我将其转换为小写的原因.
但是,我怎样才能获得第一个字母,并将其变成大写字母?
单线解决方案将是首选,但乞丐不能选择.
我将此字符串从客户端发送到服务器:
Ar|0.04107356|-0.31299785|-0.9991561
Run Code Online (Sandbox Code Playgroud)
该字符串由服务器打印出来 - 所以它是正确的.
"Ar"是数据包名称,值是射手将要射击的箭头的速度.
所以要获得这些价值,我正在使用
String[] values = str.split("|");
Run Code Online (Sandbox Code Playgroud)
然后
a.shoot(Float.valueOf(values[1]), Float.valueOf(values[2]), Float.valueOf(values[3])); //a is an archer
Run Code Online (Sandbox Code Playgroud)
问题是,值1,值[2]和值[3]似乎已损坏或无法识别.
我的完整代码是这样的:
public void handleMessage(String str){
System.out.println(str);
String[] values = str.split("|");
if (values[0].contains("Ar")){
System.out.println("X: " + values[1] + " Y: " + values[2] + " Z: " + values[3]);
}
System.out.println("Vals: " + values[0] + " " + values[1] + " " + values[2] + " " + values[3]);
if (true) return; //Returning so I can analyze de-bug messages …Run Code Online (Sandbox Code Playgroud)