Я не совсем уверен, что вы подразумеваете под "метаданными класса", помимо того, что вы можете найти через API отражения.Вот попытка ответить на вопрос, основанный на моем лучшем предположении.
По определению вы подразумеваете их объявленные внутренние переменные и сигнатуры методов?Потому что вы можете сделать это с помощью отражения (getDeclaredMethod () и getDeclaredFields ()).Однако, если два класса загружены из разных загрузчиков классов, они не будут равны (см. Javadocs класса по равенству), даже если они загружены из одного и того же скомпилированного байт-кода.
Существует другая информация, которую вы можетеполучить от API Reflection, в том числе от того, какой класс он наследует, какие интерфейсы он реализует, и любые аннотации, которые скомпилированы с ним (конечно, при условии 1,5 или выше).
Вы также можете потенциально сделать хешфайлы классов (можно найти их через загрузчик классов) и посмотреть, отличаются ли они - это скажет вам, если в них есть другой код.
Надеюсь, это поможет.