問題ごとのヒント: JavaPoet による汎用クラスの生成

最近、javapoet の使用中に小さな問題が発生しました。
次のようなものを生成する必要があります。

package mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import model.AAA;
import org.springframework.stereotype.Service;

@Service
public interface AAAMapper extends BaseMapper<AAA> {
    
    
}

コードは以下のように表示されます。

         String className = "AAA";
        // 类可见范围
        TypeSpec.Builder typeSpecBuilder = TypeSpec.interfaceBuilder(className + "Mapper");

        // 继承接口的的传入泛型

//        TypeSpec.Builder superClassBuilder = TypeSpec.interfaceBuilder(className).addTypeVariable(typeVariable);
        ClassName superClassName = ClassName.get("com.baomidou.mybatisplus.core.mapper", "BaseMapper");
//        ParameterizedTypeName.get(BaseMapper.class, TypeName.get(typeSpecBuilder.));

        typeSpecBuilder.addSuperinterface(ParameterizedTypeName.get(superClassName, ClassName.get(CodeGeneratorService.MODEL_PACKAGE_NAME, className)));

        typeSpecBuilder.addModifiers(Modifier.PUBLIC);
        typeSpecBuilder.addAnnotation(makeServiceAnnotationSpec("org.springframework.stereotype"));

        JavaFile.Builder javaFileBuilder = JavaFile.builder(packageName, typeSpecBuilder.build());

おすすめ

転載: blog.csdn.net/qq_33709508/article/details/129925129