静态接口方法:我哪里出错?

时间:2017-03-04 01:00:54

标签: java eclipse interface interface-implementation

注意:我将提供一些代码和伪代码。如果这还不够,请立即告诉我,我可以链接完整的代码。

我正在尝试创建一种在玩家注入咒语时触发的事件(完全披露:我正在为Minecraft编码)。我的计划是制作一个拼写界面,然后让每个拼法实现该界面。法术可能是像LeapSpell HealSpell和RunAwaySpell这样的东西。

法术(它实际上不是因为样式原因而被称为法术)界面非常简单:

public interface Flashpaper {
    public void use(Player p);
    public int getCost();
}

当我进入法术工具时,我会添加更多方法,但是现在能够施放,并且能够恢复法术力法术的能力已经足够了。

当我尝试使用该法术时,问题开始堆积。

在处理事件的类中(我是如何将这行代码解除的,因为它不相关)我写这个:

LeapFlashpaper.use((Player) event.getPlayer());

LeapFlashpaper课程就是其中一个"法术"这扩展了原始的Flashpaper界面。问题是,现在eclipse抱怨说,该方法应该是静态的。

将方法更改为static会破坏界面,因为尽管运行java8 eclipse不允许在接口内部使用静态方法。

我是否误解了界面?这是我第一次使用它,我认为这是一个使用它的好机会。每次我创造一个新法术时,基本方法都将在那里。这是我确保每个新法术都有正确方法的方法。

所以我再问:我在这里误解了什么吗?我是否尝试将接口用于他们本不打算使用的东西......或者......是的,我的问题是什么?

请发表你喜欢的任何评论,因为我是否在做一些非常愚蠢的事情而感到迷茫......

0 个答案:

没有答案