Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
266 views
in Technique[技术] by (71.8m points)

java - Can an interface nested inside a class be non-static?

I'm reading about some articles[1][2] online about nested interface in Java, I understand that

interface A {
    ...
    interface B { // this is static by default
        ...
    }
}

But I'm not sure that

class C {
    ...
    interface D { // Is this static by default? Why?
        ...
    }
}

In short, is that "a nested interface is always static" true?

[1] https://beginnersbook.com/2016/03/nested-or-inner-interfaces-in-java/
[2] https://www.programcreek.com/2013/08/inner-interface-in-java/

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes, your "in short" is always true. Quoting directly from the language spec:

A member interface is implicitly?static(§9.1.1). It is permitted for the declaration of a member interface to redundantly specify the?static?modifier.

where "member interface" is defined shortly before:

A?member interface?is an interface whose declaration is directly enclosed in the body of another class or interface declaration (§8.1.6,?§9.1.4).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...