Skip to main content
Jump to: navigation, search

Java10/Examples


This is an informal page listing examples of features that are implemented by the Java 10 Support for Oxygen. You are welcome to try out these examples. If you find bugs, please file a bug after checking for a duplicate entry here.


Feature / Steps Expected Result
The Pre-requisite: Java 10 JRE Support
Add Java 10 JRE Use Window -> Preferences-> Java -> Installed JREs -> Add...


FileAddJ10.jpg
[note: Eclipse -> Preferences in Mac / Window -> Preferences in Windows]

Java 10 JRE recognized as a valid JRE
Project JRE In Package Explorer Use project's context menu and add Java 10 JRE JRE specific (eg Object) gets resolved in the project.
Package Explorer Go to Package Explorer and expand the Java 10 JRE Modules (eg java.base etc) are listed in the package explorer view
The First Step: Java 10 Compliance
Set Project Compliance in Package Explorer Context Menu of Project -> Properties -> Set project-specific, drop down to 10



J10.compliance.jpg

No compiler errors
Basic Necessity : Compilation and Error Reporting
Positive Compilation Use the following code:
package packvar;
 
import java.util.ArrayList;
import java.util.List;
 
public class VarUsage {
	public static void main(String[] args) {
		String s = new String("Hello World");
 
		var x = s; // var allowed in the variable declaration
		System.out.println(x);
 
		List<String> l = new ArrayList<>();
		l.add("List.Hello");
		for (var lx : l) { // var allowed in enhanced for loop
			System.out.println(lx);
		}
	}
}



Var.compile.jpg

Code compiles
Compiler Error Cases
package packvar;
 
public class VarError {
  public static void main(String[] args) {
    String s = new String("Hello");
    var x; // compiler error: Cannot use 'var' on variable without  initializer	
    var y = null; // compiler error: Cannot infer type for local variable initialized to 'null'	
  }
}
Compiler errors are shown
Essential Utilities: Code Completion, Hover and Quick Fix.
Basic context based var completion



package packvar;
 
public class VarComplete {
  public static void main(String[] args) {
	String s = new String("hello");
 
	va // try completing here
}
}

Var.complete.jpg

Completes var since the place is appropriate
Negative Case - no completion


package packvar;
 
public class VarComplete {
	va // complete here - 'var' not offered as a completion candidate
}


Var.nocomplete.jpg

Does not offer 'var' as completion
Hover

Hover over var to see the javadoc of the associated type (in this case : String) being displayed.

package packvar;
public class VarComplete {	
  public static void main(String[] args) {
	String s = new String("hello");
	var x = s;
	System.out.println(x);
  }
}


Var.hover.jpg

Shows javadoc of the type associated with var
Quick Assist : var to type


package packvar;
public class VarComplete {	
  public static void main(String[] args) {
	String s = new String("hello");
	var x = s;
	System.out.println(x);
  }
}


Var.vartotype.jpg

Provides option to change from var to type
Quick Assist: type to var


package packvar;
public class VarComplete {	
  public static void main(String[] args) {
	String s = new String("hello");
	String x = s;
	System.out.println(x);
  }
}


Var.typetovar.jpg

Provides option to change from type to var
More to come in Java 11 !

Back to the top