Давайте представим, что я реализую следующее:
public enum ExportAPIForOSGi {
;
public static SpecialObject newSpecialObject() {
return new SpecialObjectImplv1();
}
}
public abstract class SpecialObject {
public abstract String specialMethod(String s);
}
public class SpecialObjectImplv1 extends SpecialObject {
@Override
public String specialMethod(String s) {
return "33" + s;
}
}
Каждый класс объявлен в своем отдельном файле.Только ExportAPIForOSGi
и SpecialObject
должны быть экспортированы в OSGi.
Мой вопрос: безопасно ли экспортировать ExportAPIForOSGi
, поскольку он содержит явную ссылку на код реализации (т. Е. SpecialObjectImplv1
)?Будет ли представлен код реализации?
Давайте представим, что позже я использую SpecialObjectImplv2
в ExportAPIForOSGi
вместо v1?Это будет проблемой?