Я использую Atlassian SDK для создания плагина. В этом SDK есть интерфейс и его реализация, которая используется для получения некоторых данных о редакторах. Я создал новую реализацию для этого интерфейса и хочу внедрить ее в другие мои классы. Но когда я определяю @Component
или @Named
, я получаю много ошибок о Thread и Runnable.
Мой вопрос заключается в том, можно ли внедрить другую реализацию интерфейса, к которой у вас нет доступа, и ее коды реализации по умолчанию (в SDK). Если да, правильно ли я делаю? Или я могу решить эту проблему, расширив мою имплантацию от реализации по умолчанию?
@ExperimentalApi
public interface FieldHtmlFactory {
List<FieldHtmlBean> getCreateFields(ApplicationUser var1, OperationContext var2, Action var3, MutableIssue var4, boolean var5, List<String> var6);
List<FieldHtmlBean> getLinkedIssueCreateFields(ApplicationUser var1, OperationContext var2, Action var3, MutableIssue var4, Issue var5, boolean var6, List<String> var7);
List<FieldHtmlBean> getEditFields(ApplicationUser var1, OperationContext var2, Action var3, Issue var4, boolean var5);
List<FieldHtmlBean> getInlineEditFields(ApplicationUser var1, OperationContext var2, Action var3, Issue var4, boolean var5);
List<FieldHtmlBean> getSubTaskCreateFields(ApplicationUser var1, OperationContext var2, Action var3, MutableIssue var4, boolean var5, List<String> var6);
}
реализация по умолчанию: (без каких-либо комментариев)
public class FieldHtmlFactoryImpl implements FieldHtmlFactory {...}
Моя реализация:
@Scanned
@Named("editorImpl")
public class FieldEditorFactoryImpl implements FieldHtmlFactory { ... }
Где я хочу использовать:
@Scanned
@Path("/table")
public class TableREST {
@Inject
@Named("editorImpl")
private final FieldHtmlFactory fieldEditorFactoryImpl;
@Autowired
public TableREST(FieldHtmlFactory editorImp){
this.editorImp = editorImp;
}
...
}