Java открива какво импортира .class

Има ли начин да разберете какво импортиране има клас?

В този въпрос: Джон Скийт казва, че не можете да направите това с помощта на отражение, но

Ако искате да намерите всички типове, използвани в компилирания код, това е малко по-различен въпрос. Може да искате да разгледате BCEL като начин за анализиране на байт код.

Това е, което искам да знам как да направя.


person LanguagesNamedAfterCofee    schedule 18.07.2012    source източник
comment
Вижте stackoverflow.com/questions/5701305/   -  person nolegs    schedule 18.07.2012
comment
@nolegs Редактирах въпроса си, за да отразя вашия коментар   -  person LanguagesNamedAfterCofee    schedule 18.07.2012
comment
Имате предвид в код (както при използване на отражение) или само от файла на класа (с помощта на декомпилатор или подобен?)   -  person Michael Berry    schedule 18.07.2012
comment
Класовете се съхраняват в таблицата с константи .class, въведени по подходящ начин. Има едно предупреждение: импортираните статични крайни константи се копират, така че техният импорт на клас може да отпадне. (Поне така беше в Sun's Java.)   -  person Joop Eggen    schedule 18.07.2012
comment
Вижте също stackoverflow.com/questions/3734825/   -  person earcam    schedule 23.04.2017
comment
Както вече знаете, не можете да намерите вноса, защо заглавието и първото ви изречение го задават така или иначе? Моля, коригирайте ги, за да се съгласят с това, което всъщност питате.   -  person user207421    schedule 28.08.2017


Отговори (2)


Ето един стар урок за ASM рамка за манипулиране на байт код, обясняваща как да четат зависимости на клас с ASM.

person Eugene Kuleshov    schedule 18.07.2012
comment
Връзките не работят (ето защо отговорите не трябва да са само връзки!). Архив: https://web.archive.org/web/20151231173739/http://asm.ow2.org/doc/tutorial-asm-2.0.html - person NateS; 30.09.2018

Можете да използвате Java Decompiler като този: Java Decompiler

person Baz    schedule 18.07.2012