Если вам никогда не нужно выгружать классы, это, вероятно, не проблема.Но поскольку требования могут различаться в зависимости от того, как выполняется ваш код (автономное приложение Java или развернутый в веб-контейнере, корпоративном сервере и т. Д.), Может быть разумнее этого не делать.Утечки в Classloader - это очень неприятные ошибки, которые можно отследить и устранить.
Использование канонического имени может показаться гораздо лучшим решением.Однако помните о другой проблеме: если у вас есть несколько загрузчиков классов, которые могут загружать один и тот же класс, эти классы все равно будут считаться несовместимыми.Вы не сможете отличить их по их каноническому имени, в то время как два идентичных класса, загруженные разными загрузчиками классов, дадут два отдельных экземпляра Class
и могут быть использованы в качестве ключей на одной карте.У него нет особых ограничений или требований для загрузчика классов, используйте каноническое имя.Если вы развертываете как нечто иное, чем отдельное Java-приложение, будьте осторожны с последствиями.