Since Checkstyle 5.2
Checks nested (internal) classes/interfaces are declared at the bottom of the primary (top-level) class after all init and static init blocks, method, constructor and field declarations.
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="InnerTypeLast"/> </module> </module>
Example:
class Test1 { private String s; class InnerTest1 {} public void test() {} // violation } class Test2 { static {}; class InnerTest1 {} public Test2() {} // violation } class Example1 { private String s; public void test() {} class InnerTest1 {} }
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.design