Di artikel Mendefinisikan Kelas Java, Anda diperkenalkan pada bagaimana mendefinisikan sebuah kelas Java biasa. Di artikel Menggunakan Metoda Generik Di Java, Anda juga diperkenalkan pada pemrograman generik Java. Sebuah kelas Java dapat dikatakan sebagai cetak biru (blue print) dari sebuah obyek java. Dari sebuah kelas tertentu, obyek tertentu Java dibuat. Sejak Java 7, programer Java dapat mendefinisikan dua macam kelas yaitu kelas Java biasa dan kelas Java generik. Pemrograman generik merupakan fitur baru Java dan mulai diperkenalkan pada Java 7 (JDK 7) yang mana pendeklarasian kelas dan metoda Java generik agak sedikit berbeda dengan pendeklarasian kelas dan metoda Java biasa.

Kelas generik dideklarasikan dengan menggunakan parameter tipe yang diletakkan di dalam kurung sudut setelah nama kelas. Jumlah parameter tipe di dalam kurung sudut dapat lebih dari satu dan masing-masing harus dipisah dengan tanda koma. Sekalipun kelas generik memiliki parameter tipe yang terletak di dalam kurung sudut, definisi konstruktor untuk kelas generik tidak menggunakan parameter tipe dengan kurung sudutnya. Apabila konstruktor kelas generik memiliki parameter, parameter tipe dapat digunakan sebagai tipe dari parameternya dengan tidak menyertakan kurung sudut.

Kode program sederhana berikut ini adalah contoh definisi kelas generik Warna yang digunakan untuk mengkonstruksi obyek Warna. Kelas generik ini tidak mempunyai metoda main. Kelas generik Warna hanyalah definisi yang digunakan untuk mendeklarasikan dan membuat obyek Warna.

public class Warna<T> {

   T nilaiWarna;

   public Warna() {
      nilaiWarna = null;
   }

   public Warna(T warnaBaru) {
      nilaiWarna = warnaBaru;
   }

   public String toString() {
      return ("Warna : " + nilaiWarna.toString());
   }

   public boolean samaDengan(Object warna2) {
      if (warna2 == null)
         return false;
      else {
         Warna<T> warnaLain = (Warna<T>) warna2;
         return nilaiWarna.equals(warnaLain.nilaiWarna);
      }
   }
}

Dari kode program di atas, kelas generik Warna memiliki sebuah variabel kelas (class variable) nilaiWarna dengan tipe T, dua buah konstruktor Warna dan dua buah metoda yaitu metoda toString dan metoda samaDengan.