откуда берутся файлы классов java с именами в алфавите? - PullRequest
2 голосов
/ 31 декабря 2010

ребята, я сегодня использовал декомпилятор jd-gui и нашел для меня что-то довольно странное.

Допустим, у меня есть файл jar, lib.jar, я декомпилировал его.Выяснилось, что в одном и том же пакете было несколько файлов классов, названных как A.class, B.class, a.class и т. Д.Когда я попытался вставить декомпилированные исходные файлы в проект eclipse, но IDE сказала, что не примет A.class и a.class в одной папке.Как это могло произойти?Я предполагаю, что никто не назвал его / ее файлы класса от a до z.Но декомпилятор сказал мне об этом.

Также я попытался импортировать lib.jar в свой проект и обнаружил, что не могу касаться ни одного открытого класса или интерфейса в том пакете, где находятся a.class и A.class.когда я набрал этот пакет, появились подсказки, например, «import firm.tools».

Может кто-нибудь сказать мне причину?Заранее спасибо и с новым годом!

Ответы [ 2 ]

5 голосов
/ 31 декабря 2010

Возможно, у вас есть файл jar, содержащий файлы классов. Запутанные файлы имеют идентификаторы, переименованные, чтобы их было труднее понять читателям. (Запутывание делает гораздо больше, чем просто переименование идентификаторов, но это одна из вещей, которые обычно делает запутывание.)

2 голосов
/ 31 декабря 2010

но IDE заявила, что не примет A.class и a.class в одной папке.

Эта часть, вероятно, связана с тем, что вы используете файловую систему без учета регистра (например, NTFS в Windows). Таким образом, для IDE невозможно создать отдельные файлы для A.class и a.class, поскольку ОС рассматривает их как эквивалентные имена файлов. Это относится не ко всем системам и не к спецификации Java - следовательно, возможно определять классы Java, отличающиеся только регистром (хотя это не рекомендуется из-за проблемы, которую вы только что проиллюстрировали).

(Что касается самих имен, я согласен с Крисом, что это, вероятно, результат запутывания.)

...