美文网首页
泛型 边界 接口 &

泛型 边界 接口 &

作者: lkuo | 来源:发表于2018-04-17 16:10 被阅读23次

先看代码:

public class test1 {
    interface Game {
        void play();
    }

    interface Program {
        void code();
    }

    public static class People<T extends Program & Game> {
        private T mPeople;

        public People(T people) {
            mPeople = people;
        }

        public void habit() {
            mPeople.code();
            mPeople.play();
        }
    }

    public static class Aa implements Program, Game {
        public Aa() {
        }

        @Override
        public void play() {
            System.out.println("Game play!");
        }

        @Override
        public void code() {
            System.out.println("Program code!");
        }
    }

    public static void main(String[] arg1) {
        Aa a = new Aa();
        People<Aa> people = new People<>(a);
        people.habit();
    }
}

可以看到代码中 <T extends Program & Game>这种写法,是指T是实现了Program和Game接口的类,泛型中没有集成接口的说法(没有implements)。

如果没有指明边界,类型参数将被擦除为 Object。
如果我们想要让参数保留一个边界,可以给参数设置一个边界,泛型参数将会被擦除到它的第一个边界(边界可以有多个),这样即使运行时擦除后也会有范围。

相关文章

  • 泛型 边界 接口 &

    先看代码: 可以看到代码中 这种写法,是指T是实现了Progr...

  • 008-自定义泛型,Collections

    自定义泛型 泛型类 代码实现 测试 泛型接口 代码实现 泛型方法 代码演示 测试 泛型上下边界 Collectio...

  • Java泛型详解

    1. 泛型多边界 语法 一个 class 边界 + 多个接口边界 第一...

  • 泛型

    1.什么是泛型? 2.为什么需要泛型? 3.泛型类、接口 泛型类注意事项: 从泛型类派生子类 泛型接口 泛型接口的...

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • 泛型

    问题引入 泛型引入 如果使用泛型类或接口的时候,用Object 通配符 不设置方法类型 泛型接口 定义接口泛型 在...

  • 重走安卓进阶路——泛型

    ps.原来的标题 为什么我们需要泛型? 泛型类、泛型接口和泛型方法(泛型类和泛型接口的定义与泛型方法辨析); 如何...

  • Scala 中的特殊符号 ---- 泛型边界 <: >:

    泛型的边界 <: 和 >: 符号 <:和>:都是用来表示泛型的边界,如:有以下类声明: 声明拥有泛型的类: 说明:...

  • ts 泛型

    函数泛型 接口,类泛型

  • 泛型

    一、泛型类、泛型接口和泛型方法1、泛型接口的定义: 2、两种泛型类的定义:(1) (2) 3、泛型方法的定义,可以...

网友评论

      本文标题:泛型 边界 接口 &

      本文链接:https://www.haomeiwen.com/subject/qwcpkftx.html