|
|
| Line 10: |
Line 10: |
| == Java == | | == Java == |
|
| |
|
| * We use the [http://www.oracle.com/technetwork/java/codeconvtoc-136057.html Java Coding Style]. Quick summary:
| | === Java Style === |
| ** FirstLetterUpperCase for class names
| |
| ** camelCase for method and variable names
| |
| ** One declaration per line
| |
| int x, y; // this is BAD!
| |
| int a; // split it over
| |
| int b; // two lines
| |
| ** Braces should be placed like so (generally opening braces on same line, closing braces on a new line):
| |
| public void func(int arg) {
| |
| if (arg != 0) {
| |
| while (arg > 0) {
| |
| arg--;
| |
| }
| |
| } else {
| |
| arg++;
| |
| }
| |
| }
| |
|
| |
|
| * Places we differ from the Java coding style:
| | Follow the [https://developer.mozilla.org/en-US/docs/Developer_Guide/Coding_Style#Java_practices Mozilla Coding Style]. |
| ** Start class variable names with 'm' prefix (e.g. mSomeClassVariable) and static variables with 's' prefix (e.g. sSomeStaticVariable)
| |
| ** import statements:
| |
| *** Do not use wildcard imports like `import java.util.*;`
| |
| *** Organize imports by blocks separated by empty line: org.mozilla.*, com.*, net.*, org.*, android.*, then java.*
| |
| *** Within each import block, alphabetize import names with uppercase before lowercase (so `com.example.Foo` is before `com.example.bar`).
| |
| ** 4-space indents
| |
| ** spaces, not tabs
| |
| ** Don't restrict yourself to 80-character lines. Google's Android style guide suggests 100-character lines. Java code tends to be long horizontally, so use appropriate judgement when wrapping. Avoid deep indents on wrapping. Note that aligning the wrapped part of a line with some previous part of the line (rather than just using a fixed indent) may require shifting the code every time the line changes, resulting in spurious whitespace changes.
| |
| * The [http://source.android.com/source/code-style.html Android Coding Style] has some useful guidelines too.
| |
| | |
| == Java Idioms ==
| |
|
| |
|
| === Closing resources === | | === Closing resources === |