Data Structures and Algorithms Lecture Notes

26 January 2011 Generics


Here's what happens when Java code uses a type parameter in a static feature:

$ cat SharedMailbox.java
class SharedMailbox<T> {
  static private T slot = null;

  static void put(T t)
    { slot = t; }

  static T get()
    { return slot; }
  }

$ javac -version
javac 1.6.0_21

$ javac SharedMailbox.java
SharedMailbox.java:2: non-static class T cannot be referenced from a static context
  static private T slot = null;
                 ^
SharedMailbox.java:4: non-static class T cannot be referenced from a static context
  static void put(T t)
                  ^
SharedMailbox.java:7: non-static class T cannot be referenced from a static context
  static T get()
         ^
3 errors

$


This page last modified on 2006 January 24.