Tutorial by Examples

Order of class members Class members should be ordered as follows: Fields (in order of public, protected and private) Constructors Factory methods Other Methods (in order of public, protected and private) Ordering fields and methods primarily by their access modifiers or identifier is not ...
class ExampleClass { // Access modifiers first (don't do for instance "static public") public static void main(String[] args) { System.out.println("Hello World"); } } interface ExampleInterface { // Avoid 'public' and 'abstract' since they are imp...
Indentation level is four spaces. Only space characters may be used for indentation. No tabs. Empty lines must not be indented. (This is implied by the no trailing white space rule.) case lines should be indented with four spaces, and statements within the case should be indented with another f...
Source code and comments should generally not exceed 80 characters per line and rarely if ever exceed 100 characters per line, including indentation. The character limit must be judged on a case by case basis. What really matters is the semantical “density” and readability of the line. Making l...
int someMethod(String aString, List<Integer> aList, Map<String, String> aMap, int anInt, long aLong, Set<Number> aSet, double aDouble) { … } int someMethod(String aString, List&...
If a line approaches the maximum character limit, always consider breaking it down into multiple statements / expressions instead of wrapping the line. Break before operators. Break before the . in chained method calls. popupMsg("Inbox notification: You have " + newMsgs + &...
Vertical Whitespace A single blank line should be used to separate… Package declaration Class declarations Constructors Methods Static initializers Instance initializers …and may be used to separate logical groups of import statements fields statements Multiple consec...
One variable per declaration (and at most one declaration per line) Square brackets of arrays should be at the type (String[] args) and not on the variable (String args[]). Declare a local variable right before it is first used, and initialize it as close to the declaration as possible.
Declaration annotations should be put on a separate line from the declaration being annotated. @SuppressWarnings("unchecked") public T[] toArray(T[] typeHolder) { ... } However, few or short annotations annotating a single-line method may be put on the same line as the method if...
Runnable r = () -> System.out.println("Hello World"); Supplier<String> c = () -> "Hello World"; // Collection::contains is a simple unary method and its behavior is // clear from the context. A method reference is preferred here. appendFilter(goodStrings::cont...
return flag ? "yes" : "no"; String cmp = (flag1 != flag2) ? "not equal" : "equal"; // Don't do this return (flag ? "yes" : "no"); Redundant grouping parentheses (i.e. parentheses that does not affect evaluation) may be used if t...
long l = 5432L; int i = 0x123 + 0xABC; byte b = 0b1010; float f1 = 1 / 5432f; float f2 = 0.123e4f; double d1 = 1 / 5432d; // or 1 / 5432.0 double d2 = 0x1.3p2; long literals should use the upper case letter L suffix. Hexadecimal literals should use upper case letters A-F. All other num...
You can also use line-height to center vertically a single line of text inside a container : CSS div { height: 200px; line-height: 200px; } That's quite ugly, but can be useful inside an <input /> element. The line-height property works only when the text to be centered spans ...
Note the use of {{.}} to output the item within the template. package main import ( "fmt" "os" "text/template" ) func main() { const ( letter = `Dear {{.}}, How are you?` ) tmpl, err := template.New("letter").Pa...
Note the use of {{range .}} and {{end}} to cycle over the collection. package main import ( "fmt" "os" "text/template" ) func main() { const ( letter = `Dear {{range .}}{{.}}, {{end}} How are you?` ) tmpl, err := template...
In this example, a function map named funcMap is supplied to the template via the Funcs() method and then invoked inside the template. Here, the function increment() is used to get around the lack of a less than or equal function in the templating language. Note in the output how the final item in t...
Note how field values are obtained using {{.FieldName}}. package main import ( "fmt" "os" "text/template" ) type Person struct { FirstName string LastName string Street string City string State string Zip...
Note the different package import. package main import ( "fmt" "html/template" "os" ) type Person struct { FirstName string LastName string Street string City string State string Zip string Ava...
First, here's what can happen when text/template is used for HTML. Note Harry's FirstName property). package main import ( "fmt" "html/template" "os" ) type Person struct { FirstName string LastName string Street string Cit...
Using regular recursion, each recursive call pushes another entry onto the call stack. When the recursion is completed, the application has to pop each entry off all the way back down. If there are much recursive function calls it can end up with a huge stack. Scala automatically removes the recurs...

Page 520 of 1336