他のクラスから戻り値の型メソッドを呼び出そうとしていますが、クラスの型として定義されていないというエラーが発生し続けます。Java - 戻り値の型でメソッドを呼び出す方法
public MyTask() {
id = plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin,this,plugin.getConfig().getInt("StunDuration") * 20);
if(id == -1)
{
plugin.getLogger().warning("BLARG");
}
}
私は別のクラスからそのメソッドを呼び出す方法:ここで私は呼んしようとしているコードはありますか?
public class DamageListener implements Listener{
private antirelog plugin;
public DamageListener (antirelog plugin) {
this.plugin = plugin;
}
Player realplayer1;
Player realplayer2;
boolean playeradd = false;
private MyTask task;
public static boolean isDamaged = false;
public static boolean timerTask = true;
static Set<Player> Damagelist = Collections.newSetFromMap(new WeakHashMap<Player,Boolean>());
@EventHandler
public void damage (EntityDamageEvent event) {
Entity victim = event.getEntity();
if (event instanceof EntityDamageByEntityEvent) {
EntityDamageByEntityEvent edbeEvent = (EntityDamageByEntityEvent) event;
if(edbeEvent.getDamager() instanceof Player && victim instanceof Player) {
EntityDamageByEntityEvent edbeEvent1 = (EntityDamageByEntityEvent) event;
Entity attacker = edbeEvent1.getDamager();
Player player = (Player) victim;
realplayer1 = player;
Player player2 = (Player) attacker;
realplayer2 = player2;
if(Damagelist.contains(realplayer1) || Damagelist.contains(realplayer2)) {
isDamaged = true;
timerTask = false;
System.out.println("Cancel");
MyTask();
} else {
Damagelist.add(realplayer1);
Damagelist.add(realplayer2);
isDamaged = true;
Pause ps = new Pause(plugin);
MyTask();
}
}
}
Heres the MyTaskクラス。
...
isDamaged = true;
Pause ps = new Pause(plugin);
task = new MyTask(plugin); //Note the `new` keyword
...
はまた、いくつかの他のものを修正することができます:MyTask()
以来
public class MyTask implements Runnable
{
private antirelog plugin;
private int id = -1;
/**
* Generic constructor
* @param Plugin task is associated with
* @return
*/
public MyTask (antirelog plugin) {
this.plugin = plugin;
}
public void MyTask() {
id = plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin,this,plugin.getConfig().getInt("StunDuration") * 20);
if(id == -1)
{
plugin.getLogger().warning("BLARG");
}
}
/**
* Do stuff when scheduler tells task to run
*/
@Override
public void run()
{
if (DamageListener.timerTask == true) {
DamageListener dl = new DamageListener(plugin);
dl.Then();
}
else if (DamageListener.timerTask == false) {
plugin.getServer().getScheduler().cancelTask(id);
DamageListener.timerTask = true;
}
}
/**
* Remove task from scheduler
* @return True if successfully stopped. Else false.
*/
public boolean stopTask()
{
if(id != -1)
{
plugin.getServer().getScheduler().cancelTask(id);
return true;
}
return false;
}
}
おそらく、あなたは 'public void myTask(){'? – Torious
より多くのコード、スタックトレース。私たちのお手伝いをしてください。これは不十分な質問です。詳細は不十分です。 – duffymo
正確に何がエラーであり、達成しようとしているのは正確ですか? – amit