// --------------------
// MemberVariables.java
// --------------------
final class A<T> { // extends Object
// public static T sv; // doesn't compile
public static int sv;
public static int sv0 = 0;
public static int sv1;
// public static final T scv; // doesn't compile
// public static final int scv; // doesn't compile
public static final int scv0 = 0;
public static final int scv1;
static {
sv1 = 1;
scv1 = 1;}
public T v;
public int v0 = 0;
public int v1;
public int v2;
// public final T cv; // doesn't compile
public final int cv0 = 0;
public final int cv1;
public final int cv2;
{
v1 = 1;
cv1 = 1;}
public A () {
v2 = 2;
cv2 = 2;}
public T f (T w) {
return w;}}
final class MemberVariablesTest {
public static void main (String[] args) {
System.out.println("MemberVariables.java");
{
assert A.sv == 0;
assert A.sv0 == 0;
assert A.sv1 == 1;
}
{
assert A.scv0 == 0;
assert A.scv1 == 1;
}
{
final A<Integer> x = new A<Integer>();
assert x.v == null;
assert x.v0 == 0;
assert x.v1 == 1;
assert x.v2 == 2;
}
{
final A<Integer> x = new A<Integer>();
assert x.cv0 == 0;
assert x.cv1 == 1;
assert x.cv2 == 2;
}
{
final A<Character> x = new A<Character>();
assert x.f(new Character('a')).charValue() == 'a';
// assert !x.f(new Character('a')).isInfinite(); // doesn't compile
}
{
final A<Double> x = new A<Double>();
// assert x.f(new Double(2)).charValue() == 'a'; // doesn't compile
assert !x.f(new Double(2)).isInfinite();
}
System.out.println("Done.");}}
syntax highlighted by Code2HTML, v. 0.9.1