Пользовательская загрузка классов во время компиляции в Eclipse?JAVA

Программисты JAVA общаются здесь
Anonymous
Пользовательская загрузка классов во время компиляции в Eclipse?

Сообщение Anonymous »

Есть ли способ подключиться к компилятору Eclipse, чтобы указать логику чтения/разрешения/загрузки пользовательского класса во время компиляции исходного файла Java? Я не уверен, какой термин правильный, но, по сути, это эквивалент "загрузки классов" во время компиляции, который происходит во время выполнения.

Например, скажем: иметь исходный код Java:

Код: Выделить всё

package foo;

import bar.Bar;

public final class Foo {
// getQux() returns type: qux.Qux
private final Bar bar = baz.Baz.getQux().getBar();

[...]
}
Компилятор должен запросить чтение 3 классов при компиляции исходного файла foo/Foo.java:
  • — указано как импорт.
  • — используется в полной форме (

    Код: Выделить всё

    ... = baz.Baz.getQux()...
    ).
  • — это «косвенная» зависимость (она возвращается вызовом baz.Baz.getQux(), который, в свою очередь, используется для доступа к bar.Bar через вызов к его методу getBar()).
Я хотел бы иметь возможность перехватывать каждый из этих «запросов класса» так что я могу предоставить собственную логику для получения рассматриваемого класса (возможно, он находится в базе данных, возможно, он обслуживается каким-то сервером и т. д.).

Также , мне бы хотелось, чтобы не предпринималось попыток скомпилировать какие-либо исходные файлы в проекте Eclipse до тех пор, пока они не будут явно открыты пользователем. Итак, в приведенном выше примере 3 запроса класса (, baz.Baz, qux.Qux) не создаются до тех пор, пока пользователь фактически не откроет исходный файл foo/Foo.java. В идеале список исходных файлов в проекте не обязательно должен быть реальными файлами в файловой системе (возможно, они тоже живут в базе данных и т. д.), и попытка компиляции осуществляется только тогда, когда пользователь открывает/загружает исходный файл.

Я понимаю, что если это возможно, то у этого есть некоторые недостатки. Например, если я отредактирую исходный файл foo/Foo.java, чтобы сделать класс «частным пакетом», это автоматически нарушит работу любого класса, который зависит от foo.Foo, пока не будет выполнена «полная» компиляция. проекта. На данный момент для моих целей это подходит (есть вещи, которые я могу сделать позже, чтобы решить эту проблему).

Есть идеи/предложения?

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/148 ... in-eclipse

Вернуться в «JAVA»