Spring Как расширение динамического типа интерфейса - PullRequest
0 голосов
/ 20 ноября 2018

Я начал работать с Spring Boot после 14 лет в C #, и теперь возникла небольшая проблема.

с действием:

@Component
public class GetBillingUserStatusActivity implements ITask<BillingStatus, 
String>, ITasks {

@Override
public BillingStatus Execute(String firstInput) {

    return BillingStatus.active;
}}

У меня есть класс wokflow, который будет выполнятьпрецедентное действие, подобное этому:

@Component
public class CreateUserTokenWorkflow {

@Autowired
private ITaskResolver taskResolver;

@Autowired
private GetBillingUserStatusActivity getBillingUserStatusActivity;

public String CreateUserToken() {

    var task = taskResolver.ResolveTask(getBillingUserStatusActivity);

    BillingStatus response =  task.Execute("test");

    return response.toString();
}}

, и моя проблема теперь в моем классе TaskResolver

@Component("taskResolver")
public class TaskResolver implements ITaskResolver {
@Override
public <T extends ITasks> T ResolveTask(ITasks t) {
    T type = (T) GenericTypeResolver.resolveType(t.getClass(), t.getClass());
    return type;
   }
}

T type = (T) GenericTypeResolver.resolveType (t.getClass (), t.getClass ()) => приведение к ITask не удалось

ErrorMessage: класс java.lang.Class не может быть приведен к классу com.consumer.workflow.manager.ITasks (java.lang.Class находится в модуле java.baseзагрузчика 'bootstrap'; com.consumer.workflow.manager.ITasks находится в безымянном модуле загрузчика org.springframework.boot.devtools.restart.classloader.RestartClassLoader @ 211f766)

...