Java静态和非静态和世界的接口不instanceable错误
问题描述:
我有Java静态和非静态和世界的接口不instanceable错误
不能使静态参考非静态方法spawnParticle(布拉布拉)
这是一个问题我把我的代码..
public class Particle implements CommandExecutor
{
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
if (sender instanceof Player)
{
Particle particle = new Particle();
Player player = (Player) sender;
double x = ((Player) sender).getLocation().getX();
double y = ((Player) sender).getLocation().getY();
double z = ((Player) sender).getLocation().getZ();
World.spawnParticle(org.bukkit.Particle.TOTEM, x, y, z, 1, 0, 0, 0);
}
return false;
}
}
我已经读了很多关于非静态的静态问题的解决和知道这是什么意思的问题,但我真的不知道如何在这里解决。 问题扩展到这个世界是一个接口,不能被增强。解决方法是在评论感谢您的帮助
答
该方法是一个实例方法,这意味着你必须实例与新的对象和世界是一个接口,所以你不能实例化它,你必须实例类实现此接口,玩家拥有世界
(不要忘记导入该类WorldEvent)
if (sender instanceof Player)
{
Particle particle = new Particle();
Player player = (Player) sender;
double x = ((Player) sender).getLocation().getX();
double y = ((Player) sender).getLocation().getY();
double z = ((Player) sender).getLocation().getZ();
World w = sender.getWorld();
w.spawnParticle(org.bukkit.Particle.TOTEM, x, y, z, 1, 0, 0, 0);
}
使World'的'一个实例,然后调用'spawnParticle'就可以了。 –
想想这样:你应该如何产生一个粒子,而不需要在内部产卵的世界?还是你想让所有的世界产生相同的粒子? –
'Inhace'? 'Inhanced'?你在说什么? – EJP