In Java, for example, every object has a method called getClass() which returns a reference to an instance of the class Class. This Class instance describes the class of the original object. Since this Class instance is a normal object it also has the getClass() method. Calling this method on the Class instance returns another Class instance describing Class. This is where the meta-regress actually stops. Calling getMethod() on the Class instance describing Class returns the same object; that is, for any object o, o.getClass().getClass() == o.getClass().getClass().getClass() is always true.