Class tipinde bir nesne yaratılması üç yöntemle olmaktadır ve aşağıdaki örnekte bu üç yöntem kullanılmaktadır:
package com.test.reflection;
public class ClassTest {
public static void main(String[] args) {
Class<?> classPerson=Person.class;
Person person=new Person();
Class<?> classPerson2=person.getClass();
Class classPerson3=null;
try {
classPerson3=Class.forName("com.test.reflection.Person");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(classPerson.getName());
System.out.println(classPerson2.getName());
System.out.println(classPerson3.getName());
}
}
İlk yöntem Person.class şeklinde static class alanını kullanmaktadır. İkinci yöntem yaratılan bir nesneden person.getClass() ile Class'ını almaktadır. Üçüncü yöntem ise bir String'ten Class.forName("com.test.reflection.Person") şeklinde Class üretmektir. Bu üç yöntemle elde edilen Class örneğinden Person sınıfı ile ilgili istenilen bilgiler alınabilir. Yukarıdaki uygulama çalıştığında
com.test.reflection.Person
com.test.reflection.Person
com.test.reflection.Person
şeklinde Person sınıfın adı basılacaktır.