Я пытаюсь выяснить, как разрешить следующий вариант использования:
- Пользователь может определить класс Java, скажем
MyFoo
, как это (код генерируется автоматически, а guidустановлен, чтобы избежать конфликтов имен)
import com.bar.entities.BaseEntity;
package com.bar.entities.defined.79B35635_DEDF_A344_9621_0477A6E71725;
public class MyFoo extends BaseEntity {
public String getFoo() { ... }
public Integer getBar() { ... }
@Override
public byte[] serialize() {...}
}
- Пользователь может импортировать этот класс Java в другой класс следующим образом:
package com.bar.business;
import com.bar.entities.defined.79B35635_DEDF_A344_9621_0477A6E71725.MyFoo;
public class Business extends Minion {
@Override
public void execute(EntityProvider ep) {
MyFoo myFoo = ep.get("myFoo", MyFoo.class);
if (myFoo.getBar() < 10) {
notifyMaster();
}
}
}
Дополнительно у меня естьJava-приложение (на самом деле HTTP-сервер Grizzly с джерси API Rest), которое должно иметь возможность компилировать оба класса.
¿Как я могу скомпилировать оба класса?Первый может быть скомпилирован.Второй не может, потому что компилятор говорит, что метод getBar()
неизвестен (он удивительно не сбивается в строке импорта)
Я хочу отправить оба экземпляра Class<?>
по сети ииспользуйте их в другом месте через отражение с getDeclaredConstructor()
С уважением.