gpt4 book ai didi

JavaPOET - 只有类有父类(super class),而不是 INTERFACE

转载 作者:行者123 更新时间:2023-12-02 12:07:54 24 4
gpt4 key购买 nike

我正在尝试使用 JavaPOET 库为下面的 JPA 存储库生成代码,但是我收到“只有类有父类(super class),没有接口(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();

生成扩展类的接口(interface)有什么解决方案/最佳实践吗?谢谢,

最佳答案

信息相当明确:

"only classes have super classes, not INTERFACE" error.

TypeSpec.Builder.superclass() 确实允许仅指定类。
要指定接口(interface),请使用 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 - 只有类有父类(super class),而不是 INTERFACE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46757224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com