В Java нет метакласса.Вы, вероятно, думаете о MetaClass Groovy :
MetaClass в Groovy определяет поведение любого данного класса Groovy или Java.Интерфейс MetaClass определяет две части.Клиентский API, который определяется через расширенный интерфейс MetaObjectProtocol и контракт с системой времени исполнения Groovy.В общем, компилятор и Groovy runtime engine взаимодействуют с методами этого класса, в то время как клиенты MetaClass взаимодействуют с методом, определенным интерфейсом MetaObjectProtocol
Groovy MetaClass позволяет назначать поведение и состояние классам всреда выполнения без редактирования исходного исходного кода, это слой над исходным классом.
Это механизм, используемый Groovy для расширения объектов Java JDK .
Пример:
Object.class.metaClass.explode{-> println "Boom! ${delegate} Exploded!"}
"SomeString".explode();
12345.explode();
Вывод:
Бум!SomeString взорвался!
Бум!12345 взорвалось!
Для более продвинутого использования, прочитайте это: MetaClasses