Oto klasa Para – prosty przykład klasy generycznej:

public class Para <T> {
	private T pierwszy;
	private T drugi;
	public Para(T pierwszy, T drugi) {
		this.pierwszy = pierwszy;
		this.drugi = drugi;
	}
	public T getPierwszy() {
		return pierwszy;
	}
	public void setPierwszy(T pierwszy) {
		this.pierwszy = pierwszy;
	}
	public T getDrugi() {
		return drugi;
	}
	public void setDrugi(T drugi) {
		this.drugi = drugi;
	}
}

A oto kawałek kodu, który z niej korzysta:

Para<Integer> para = new Para<Integer>(3, 5);
para.setPierwszy(13);
 
// ale na to kompilator nie pozwoli:
//para.setPierwszy("tralala");
 
// pobierając element z listy nie muszę rzutować:
int a = para.getPierwszy();
System.out.println(a);