Is it possible to create an inner class within an interface?
If it is possible why would we want to create an inner class like that since
we are not going to create any interface objects?
Do these inner classes help in any development process?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Yes, you can create both a nested class or an inner class inside a Java interface (note that contrarily to popular belief there’s no such thing as an “static inner class“: this simply makes no sense, there’s nothing “inner” and no “outter” class when a nested class is static, so it cannot be “static inner”).
Anyway, the following compiles fine:
I’ve seen it used to put some kind of “contract checker” directly in the interface definition (well, in the class nested in the interface, that can have static methods, contrarily to the interface itself, which can’t). Looking like this if I recall correctly.
Note that I’m not commenting on the usefulness of such a thing, I’m simply answering your question: it can be done and this is one kind of use I’ve seen made of it.
Now I won’t comment on the usefulness of such a construct and from I’ve seen: I’ve seen it, but it’s not a very common construct.
200KLOC codebase here where this happens exactly zero time (but then we’ve got a lot of other things that we consider bad practices that happen exactly zero time too that other people would find perfectly normal so…).