Есть ли способ управлять импортом подклассов по наследству - PullRequest
0 голосов
/ 20 марта 2012

Есть ли способ управлять импортом подклассов по наследству?

Я знаю, что это не цель наследования, но я бы хотел это сделать, потому что у меня есть своего рода шаблон исходного кода java для QA-людей в моей компании. Я не хочу, чтобы они беспокоились об импорте при вставке java-ified selense в шаблон java.

Вам известны какие-либо фреймворки, аннотации или тому подобное, которые могут это сделать?

Пример того, что я имею в виду (с мнимой @inherit аннотацией):

@inherit
import xyz.ABC
class Super{
}

И теперь подклассу больше не нужно импортировать ABC:

class Sub extends Super {
     ABC abc;
}

1 Ответ

1 голос
/ 20 марта 2012

Я точно не знаю, возможно ли аннотировать операторы импорта ( их нет в списке , и я не могу попробовать это на лету), и я уверен, что это можетс apt не обойтись, потому что аннотация не определена для класса, который должен быть скомпилирован.

Но вы можете пометить операторы импорта аннотациями (если возможно), тегами javaDocили предопределенные комментарии и использовать пользовательский инструмент для чтения этой информации из исходного файла суперкласса и изменения исходного кода до его компиляции.

Вам понадобится библиотека, которую можно использовать для разбора исходных файлов Java.


В качестве альтернативы - вы можете предоставить / сгенерировать исходные файлы только с полностью определенными именами классов, чтобы классы вообще не нуждались в операторах импорта:

class Sub extends Super {
     xyz.ABC abc;
}
...