/home/wpollock1/public_html/Java/VarDemo.java
import java.io.*;
import java.net.*;
import java.util.*;
/**
* Demo of declaring and initializing variables. The new "var"
* syntax comes with several restrictions, as shown below. It is
* claimed that using var when legal makes code more readable. You
* be the judge!
* Written 2024 by Wayne Pollock.
*/
public class VarDemo {
/** Exception handling omitted for clarity of the example. */
public static void main ( String[] args ) throws Exception {
// Six regular declarations with initializers:
int num = 10;
String name = "Hymie";
URL wpollock = new URI("https://wpollock.com/").toURL();
BufferedReader reader = new BufferedReader( new FileReader("data.txt"));
ArrayList<String> rooster = new ArrayList<>();
int[] array = new int[4];
// Rewritten to use "var":
var num2 = 10;
var name2 = "Hymie";
var wpollock2 = new URI("https://wpollock.com/").toURL();
var reader2 = new BufferedReader( new FileReader("data.txt"));
var rooster2 = new ArrayList<String>();
var array2 = new int[4];
// None of the following are legal; See
// docs.oracle.com/javase/specs/jls/se22/html/jls-14.html#jls-14.4-400-A
// for the exact rules:
/*
foo = "foo"; // no var keyword
var foo; // no initial value
var nums = {1, 2, 3}; // Array initializer cannot use var
var appendSpace = a -> a + " "; // A "Lambda" cannot use var
var compareString = String::compareTo; // A method reference cannot use var
var b = 2, c = 3; // Illegal: multiple declarators cannot use var
var array3[] = new int[4]; // Illegal: extra bracket pair after "3"
var n = null;
*/
}
}