Я экспериментирую с модульной системой Java.Я пытаюсь использовать ServiceLoader для универсальных интерфейсов.Это работает, но у меня есть предупреждения в информации модуля.Вот мой минимальный код
module testProvideWith {
provides ServiceGeneric with SString;
uses ServiceGeneric;
}
public interface ServiceGeneric<T> {
T getT();
}
public class SString implements ServiceGeneric<String>{
public String getT() {return "Hello";}
}
Меня не удивляет предупреждение при попытке
ServiceGeneric<String> serv=ServiceLoader.load(ServiceGeneric.class).findFirst().get();
Я знаю об общем стирании, я понимаю, что мне придется использовать аннотацииили какой-то другой трюк, чтобы аннотировать правильный сервис.Но ... нет никаких упоминаний об общих услугах, которые я могу найти.Я ожидал, что смогу написать что-то вроде
module testProvideWith {
provides ServiceGeneric<String> with SString;
uses ServiceGeneric<String>;
//more cases could be added
}
...
ServiceLoader.load(ServiceGeneric.class,String.class)
, где модуль и загрузчик взаимодействуют, чтобы отследить, какая универсальная версия доступна ... но ... ничего ... никаких следов того, что кто-либо задумывалсятакая возможность ... я что-то упустил?