Java泛型的介绍与详解Gson泛型解析

81 阅读2分钟

1、介绍

        是[程序设计语言]的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的[类型],在[实例化]时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样

2、使用

1.类参数的泛型

1.1模板:

class +类名<泛型>{

}

1.2泛型支持继承

public class MyFanParent<T> {


    public void log(T t) {

        if (t instanceof String) {
            System.out.println(t);
        }
    }


    public static void main(String[] args) {
        MyFanParent parent = new MyFanParent<String>();
        parent.log("ABC");
    }

}

2.参数泛型的指向

public class MyFanParent<T extends MyT> {


    public void log(T t) {

        if (t instanceof MyT) {
            System.out.println(t.getName());
        }

    }


    public static void main(String[] args) {


        MyFanParent parent = new MyFanParent<MyChildT>();
        MyChildT childT=new MyChildT("abc")
        parent.log(childT);
    }

}

3.方法泛型

方法泛型的格式如下

修饰域+泛型 +返回类型+方法名

泛型也是可以继承。

public class MyFanParent {


    //方法参数泛型
    public <M> void getLogin(M m) {

    }

    //方法参数泛型
    public <M extends MyT> void getLogin(M m) {

    }

    //方法参数泛型,带返回值
    public <M extends MyT> M getLogin2(M m) {

        return m;
    }


    // 静态方法调用
    public static <M> void log(M m) {

    }

    // 静态方法调用
    public static <M extends String> M logReturn(M m) {

        return m;

    }

    //解析json泛型
    public static <M> M getGson(JsonObject object, M m) {
        Gson gson = new Gson();
        M result = (M) gson.fromJson(object.toString(), m.getClass());
        return result;
    }
}

4.继承类的泛型

基类:

public class MyParentT <T>{

}

子类:

public class MySimple<M> extends MyParentT<M>{


}

三、详解

        针对以上的方法,我们给出了常见的泛型使用,只要我们掌握了类的构造,了解泛型的规则。在处理工具类和模式设计有很大的提升。

关注公众号:Android老皮
解锁  《Android十大板块文档》 ,让学习更贴近未来实战。已形成PDF版

内容如下

1.Android车载应用开发系统学习指南(附项目实战)
2.Android Framework学习指南,助力成为系统级开发高手
3.2023最新Android中高级面试题汇总+解析,告别零offer
4.企业级Android音视频开发学习路线+项目实战(附源码)
5.Android Jetpack从入门到精通,构建高质量UI界面
6.Flutter技术解析与实战,跨平台首要之选
7.Kotlin从入门到实战,全方面提升架构基础
8.高级Android插件化与组件化(含实战教程和源码)
9.Android 性能优化实战+360°全方面性能调优
10.Android零基础入门到精通,高手进阶之路

敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔