JavaPOET - 只有 类 有超级 类,没有接口
JavaPOET - only classes have super classes, not INTERFACE
我正在尝试使用 JavaPOET 库为下面的 JPA 存储库生成代码,但是
我收到 "only classes have super classes, not INTERFACE" 错误。
@Repository
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
}
这是我试过的 JavaPOET 代码..
TypeSpec userRepository = TypeSpec.interfaceBuilder("UserRepository")
.addAnnotation(Repository.class)
.addModifiers(Modifier.PUBLIC)
.superclass(ParameterizedTypeName.get(ClassName.get(PagingAndSortingRepository.class),
ClassName.get(User.class),
ClassName.get(Long.class)))
.build();
任何solution/best生成接口扩展class的做法?
谢谢,
信息比较清楚:
"only classes have super classes, not INTERFACE" error.
TypeSpec.Builder.superclass()
确实只允许指定 类.
要指定接口,请使用 TypeSpec.Builder.addSuperinterface()
.
它会给出:
TypeSpec userRepository = TypeSpec.interfaceBuilder("UserRepository")
.addAnnotation(Repository.class)
.addModifiers(Modifier.PUBLIC)
.addSuperinterface(ParameterizedTypeName.get(ClassName.get(PagingAndSortingRepository.class),
ClassName.get(User.class),
ClassName.get(Long.class)))
.build();
它应该生成此代码:
@org.springframework.data.repository.Repository
public interface UserRepository extends org.springframework.data.repository.PagingAndSortingRepository<User, java.lang.Long> {
}
您可以在 JavaPOET 项目的单元测试中找到完整的示例。
请参阅 git .
我正在尝试使用 JavaPOET 库为下面的 JPA 存储库生成代码,但是 我收到 "only classes have super classes, not INTERFACE" 错误。
@Repository
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
}
这是我试过的 JavaPOET 代码..
TypeSpec userRepository = TypeSpec.interfaceBuilder("UserRepository")
.addAnnotation(Repository.class)
.addModifiers(Modifier.PUBLIC)
.superclass(ParameterizedTypeName.get(ClassName.get(PagingAndSortingRepository.class),
ClassName.get(User.class),
ClassName.get(Long.class)))
.build();
任何solution/best生成接口扩展class的做法? 谢谢,
信息比较清楚:
"only classes have super classes, not INTERFACE" error.
TypeSpec.Builder.superclass()
确实只允许指定 类.
要指定接口,请使用 TypeSpec.Builder.addSuperinterface()
.
它会给出:
TypeSpec userRepository = TypeSpec.interfaceBuilder("UserRepository")
.addAnnotation(Repository.class)
.addModifiers(Modifier.PUBLIC)
.addSuperinterface(ParameterizedTypeName.get(ClassName.get(PagingAndSortingRepository.class),
ClassName.get(User.class),
ClassName.get(Long.class)))
.build();
它应该生成此代码:
@org.springframework.data.repository.Repository
public interface UserRepository extends org.springframework.data.repository.PagingAndSortingRepository<User, java.lang.Long> {
}
您可以在 JavaPOET 项目的单元测试中找到完整的示例。
请参阅 git .