Java ?不定类型与泛型的使用解决List继承参数

Posted boonya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java ?不定类型与泛型的使用解决List继承参数相关的知识,希望对你有一定的参考价值。

?表示不确定的数据类型。下面我们来看看怎么使用。

定义模型和子模型

@Data
public class Model 
    String id;
    String name;
    String desc;


@Data
public class SubModel extends Model
    String subName;

定义List泛型接口和实现

public interface MultiModelService 

    /**
     * 多模型List
     * @param list
     */
    void batchSave(List<? extends Model> list);


@Slf4j
@Service
public class MultiModelServiceImpl implements MultiModelService 

    @Override
    public void batchSave(List<? extends Model> list) 
        log.info("--MultiModelService batchSave--");
    

编写测试用例

@ComponentScan(basePackages = "com.boonya.code.list.service.impl")
@SpringBootTest
@SpringBootConfiguration
public class TestMultiModelService 

    @Autowired
    MultiModelService multiModelService;

    @Test
    public void test()
        List<Model> models = new ArrayList<>();
        List<SubModel> subModels = new ArrayList<>();
        multiModelService.batchSave(models);
        multiModelService.batchSave(subModels);
    

输出效果: 

以上是关于Java ?不定类型与泛型的使用解决List继承参数的主要内容,如果未能解决你的问题,请参考以下文章

Java Streams 与泛型的使用

java基础十二[集合与泛型](阅读Head First Java记录)

java中泛型的使用

Java泛型:泛型的定义(类接口对象)使用继承

模板与泛型编程——模板实参推断

C#学习笔记8