zoukankan      html  css  js  c++  java
  • Java 通配符泛型例子

    请看下面的代码,其中会发生错误的代码已经注释掉,并且写明了错误类型

    总体来说,泛型通配符就是为了支持多态时父子类,接口扩展类之间的相互转换而生


    package test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GenericTester {
    public static void main(String[] args){
    GenericTester genericTester=new GenericTester();
    List<TestA> list=new ArrayList<GenericTester.TestA>();
    GenericTester.TestA tester=genericTester.new TestA();
    list.add(tester);
    TryGeneric1(list);
    TryGeneric2(list);
    // TryGeneric3(list);  has compile error
    // TryGeneric4(list);  has compile error
    }
    private interface ITest{
    public void Test();
    }
    private class TestA implements ITest{
    
    @Override
    public void Test() {
    // TODO Auto-generated method stub
    System.out.println("TestA");
    }
    }
    private static void TryGeneric1(List<? extends ITest> testList){
    for(ITest tester:testList){
    tester.Test();
    }
    }
    private static void TryGeneric2(List<?> testList){
    // for(ITest tester:testList)   // cause error
    for(Object tester:testList){
    ((ITest)tester).Test();
    }
    }
    private static void TryGeneric3(List<ITest> testList){
    for(ITest tester:testList){
    ((ITest)tester).Test();
    }
    }
    private static void TryGeneric4(List<Object> testList){
    for(Object tester:testList){
    ((ITest)tester).Test();
    }



  • 相关阅读:
    Dotnet微服务:使用HttpclientFactory实现服务之间的通信
    Dotnet微服务:使用Steeltoe集成Eureka
    Lora服务器:Chirpstack连接Lora网关实战
    linux远程windwos软件rdesktop
    kali笔记
    ubuntu笔记
    Swagger使用
    Swagger接口导入Yapi
    Nexus上传自己本地jar包 和下载maven中央仓库里的包到nexus
    docker安装rabbitmq
  • 原文地址:https://www.cnblogs.com/vanpan/p/3583042.html
Copyright © 2011-2022 走看看