Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何将GraphQLResolver通用接口作为目标?_Spring_Spring Boot_Kotlin_Graphql_Graphql Java - Fatal编程技术网

Spring 如何将GraphQLResolver通用接口作为目标?

Spring 如何将GraphQLResolver通用接口作为目标?,spring,spring-boot,kotlin,graphql,graphql-java,Spring,Spring Boot,Kotlin,Graphql,Graphql Java,我想使用一个接口(在我的例子中是FieldTemplate)作为GraphQLResolver的泛型类型,但由于库似乎在寻找更“具体”的类型(在我的例子中是NumberFieldTemplate、TextFieldTemplate等),我似乎只限于下面的工作。你知道我如何创建下面的简化版本吗?理想情况下,我想使用接口FieldTemplate将其表示为一个Spring组件。顺便说一下,下面的代码是用Kotlin编写的。我正在使用graphql java库 @Component class Num

我想使用一个接口(在我的例子中是FieldTemplate)作为GraphQLResolver的泛型类型,但由于库似乎在寻找更“具体”的类型(在我的例子中是NumberFieldTemplate、TextFieldTemplate等),我似乎只限于下面的工作。你知道我如何创建下面的简化版本吗?理想情况下,我想使用接口FieldTemplate将其表示为一个Spring组件。顺便说一下,下面的代码是用Kotlin编写的。我正在使用graphql java库

@Component
class NumberFieldTemplateResolver :
  FieldTemplateResolver<NumberFieldTemplate>(), GraphQLResolver<NumberFieldTemplate>

@Component
class TextFieldTemplateResolver :
  FieldTemplateResolver<TextFieldTemplate>(), GraphQLResolver<TextFieldTemplate>

@Component
class LabelFieldTemplateResolver :
  FieldTemplateResolver<LabelFieldTemplate>(), GraphQLResolver<LabelFieldTemplate>

@Component
class ComboBoxFieldTemplateResolver :
  FieldTemplateResolver<ComboBoxFieldTemplate>(), GraphQLResolver<ComboBoxFieldTemplate>

@Component
class CheckFieldTemplateResolver :
  FieldTemplateResolver<CheckFieldTemplate>(), GraphQLResolver<CheckFieldTemplate>


abstract class FieldTemplateResolver<T : FieldTemplate> {
  fun screenBox(fieldTemplate: T, displayUnit: DisplayUnit?): ScreenBox = when (displayUnit) {
    DisplayUnit.PIXELS -> screenBoxInPixels(fieldTemplate.screenBox)
    else -> fieldTemplate.screenBox
  }
}

目前面临着同样的问题。你找到解决办法了吗?我还试图解决graphQl联合类型的问题。嗨,Paul,不,不幸的是,我从未找到解决方案。如果你能想出你的工会式的想法,我也很想听听。
interface FieldTemplate {
  id: ID!
}

type NumberFieldTemplate implements FieldTemplate {
  id: ID!
  ...
}

type TextFieldTemplate implements FieldTemplate {
  id: ID!
  ...
}

...