gpt4 book ai didi

java - 静态嵌套接口(interface)的内联实现

转载 作者:行者123 更新时间:2023-11-29 23:05:34 26 4
gpt4 key购买 nike

View.setOnClickListener( new View.OnClickListener(){
@override
public void onClick(View view){
//Some code implementing this method
}
});

这里的 OnClickListener 是在 View 内部声明的静态接口(interface)。因为它是静态的,所以它不会被归类为内部类(如果我在这里错了请纠正我)。

那我们如何使用匿名类来内联实现这个静态嵌套接口(interface)呢?

因为,据我所知,它们仅用于内联实现内部类,这些内部类是嵌套类型,没有用于封闭类型的 static 关键字。

最佳答案

首先:内部接口(interface)默认是“静态的”。不可能有一个不是静态的“内部”接口(interface)!参见 here有关这方面的更多想法。

从这个角度来看,接口(interface)就是:接口(interface)。它们是位于自己的 .java 文件中的顶级接口(interface),还是位于某个类中的接口(interface)都没有关系。

并且任何接口(interface)都可以使用匿名内部类来实现。

这就是全部内容。

回复评论:

so the inline implementation ie the anonymous class itself becomes an inner class of the interface it implements?

不,匿名内部类是围绕它的类的内部类。它恰好实现了一些接口(interface)。它不是接口(interface)的内部类。内部的真正含义是“物理”意义上的,就像位于其他代码块内部 的代码行一样。

class Outer {
class/interface Inner {

Inner 被称为内部类/接口(interface),因为它位于 inside Outer 中。

关于java - 静态嵌套接口(interface)的内联实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56607746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com