* git enforced \n line endings * 4-spaces instead of tabs for indentation * Spaces after control statements before beginning parenthesis or brace *
if (
*
for (
*
while (
*
do {
*
try {
*
public class SomeClass {
* Spaces after closing parenthesis in a control statement * No newline after closing parenthesis and space in a control statement: *
if () {
*
for () {
*
while () {
*
catch () {
*
switch () {
* Newlines before an else, else if, catch, and finally statement *
}
else {
*
}
else if () {
*
}
catch () {
*
}
finally () {
* Space after ; in for statement, not before *
for (int i = 0; i < 10; i++) {
* Spaces around operators *
a + b
*
a == b
*
for (Type blah : blahs) {
*
"String " + "concatenation"
* Spaces around { and } on one-line declarations *
public boolean aMethod() { return something; }
* Fewer extraneous parentheses, except when they increase readability *
if (a == b || b == c)
* Indent on case in switch case statements *
switch () {
            case 1:
* Mandatory comment for when a case falls through, and when not stacking *
switch () {
            case 1:
                // Fallthrough

            case 2:
*
switch () {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                // Fallthrough

            case 6:
* Empty line between cases after break, return, or fallthrough *
switch () {
            case 1:
                break;

            case 2:
* Whenever possible, check for a negative, rather than a positive *
if (!something) {
            // Do things
        }

        // Do other things
* Java standard class and method naming, with exception to McMMO in a class name *
thisIsAMethod()
*
ThisIsAClass
* Exception:
McMMOCustomClass
* No space before opening parenthesis for methods, or constructors *
public void thisIsAMethod() {
*
public ThisIsAClass() {
* Spaces after comma in method calls and constructors, not before *
something.methodCall(variable, otherVariable);
* Accessing of variables with this. only when necessary to resolve scope * Class variables always defined at the top, before the constructor * No empty line between class declaration and beginning of variable declaration * Always a empty line at the end of a method or constructor definition * Constructors come before methods, and are typically ordered from the ones with the least arguments to the most * Methods should be ordered in this manner: * override public * public * static public * abstract public * override protected * protected * static protected * abstract protected * override private * private * static private * abstract private * No one-line if statements, they should all have brackets