Java 接口是否应该包含自己的回调类?

Java 接口是否应该包含自己的回调类?,java,android,interface,callback,Java,Android,Interface,Callback,如果我有一个带有多个回调的接口,我希望将其作为一个完整的集合或单独使用。我可以简单地在接口内创建所需的类吗?或者我应该将它设置为静态并移动到另一个类 我在代码中的意思示例: public interface SomeChangeListener { void OnSomeChangeA(); void OnSomeChangeB(); class SomeCallback implements SomeChangeListener { @Override public

如果我有一个带有多个回调的接口,我希望将其作为一个完整的集合或单独使用。我可以简单地在接口内创建所需的类吗?或者我应该将它设置为静态并移动到另一个类

我在代码中的意思示例:

public interface SomeChangeListener {

void OnSomeChangeA();

void OnSomeChangeB();


class SomeCallback implements SomeChangeListener {

    @Override
    public void OnSomeChangeA() {}

    @Override
    public void OnSomeChangeB() {}
}}
这工作得很好,我只关心它的任何缺陷,这将在某个时候引起问题。内存泄漏等

任何提示都将不胜感激。
谢谢。

将类定义放入接口。。。不应导致内存泄漏。比如:从来没有

或者换句话说:如果您成功地放下了一个导致内存泄漏的类定义,那么这个泄漏就是由您的代码所做的事情引起的。不是因为它是属于某个类的字节码的一部分

因此,这里真正重要的缺陷是:通常,接口用于从具体实现中创建抽象。将一个实现直接放在您的接口中会与此目标相矛盾!例如,见


长话短说:你可以做到;但我认为它带有某种“糟糕的设计”的味道。

谢谢。我只是不确定这样做是否正确,内存泄漏并不是我完全理解的事情。所以什么会和不会导致他们总是在我的脑海里。谢谢你的帮助。回复fast,抱歉。我猜将它移动到基类上的静态内部类将是最好的选择。当我这样做的时候,我知道这有点奇怪。再次感谢。谢谢你的快速接受。但请注意:这只是一个存在许多有效意见的话题。所以,我的建议是:最好直接和有经验的人交谈。让他们审查你设计的大部分内容。如果周围没有这样的人,你可以在codereview.stackexchange.com上贴一些小的东西。我觉得你的答案可以接受,所以我想我会这么说。如果有人提出不同的意见,我同样会考虑他们。至于复习,我没有个人复习的人可以问,而公开复习让我有点害怕,因为我缺乏知识和自信。。。不管怎样,我很快就会把这个库上传到GitHub,所以也许我应该继续尝试那个网站。谢谢你的建议,并花时间回答我的基本问题。非常欢迎。如果你想了解“如何”/“什么”,你可以放在codereview.SE上。。。只要研究那里的问题;看看哪一个得票最多,有什么样的答案。然后决定你是否有可以放进去的小件。