博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java泛型--泛型接口
阅读量:6248 次
发布时间:2019-06-22

本文共 1714 字,大约阅读时间需要 5 分钟。

  hot3.png

 

    泛型也可以应用与接口上.例如生成器(Generator),这是一种专门负责创建对象的类,这种生成器无需额外的信息就知道如何创建新的对象,接口如下:

/***泛型接口**/public interface Generator
 {    T create();}/***泛型接口实现---斐波那契数列**/class Fabonacci implements Generator
{    //位置    private int count = 0;    //产生fabonacci数的核心代码    private int fab(int n){        if(n < 2){            return 1;        }else{            return fab(n - 1) + fab(n - 2);        }    }    //泛型接口:生成器    @Override    public Integer create() {        return fab(count++);    }    public static void main(String[] args) {        Fabonacci fabonacci = new Fabonacci();        for(int i = 0; i < 10; i++){            System.out.printf(fabonacci.create() + " ");        }    }}/*输出结果:1 1 2 3 5 8 13 21 34 55 */

    进一步我们可能会想到iterable接口,我们可以重构这个类,创建一个适配器来实现所需要的接口(这里通过继承创建适配器):

class IteratorFabonacci extends Fabonacci implements Iterable
 {    private int size;    public IteratorFabonacci(int size) {        this.size = size;    }    public Iterator
 iterator() {        return new Iterator
() {            @Override            public boolean hasNext() {                return size > 0;            }            @Override            public Integer next() {                size--;                return create();            }            @Override            public void remove() {                throw new UnsupportedOperationException();            }        };    }    public static void main(String[] args) {        IteratorFabonacci iteratorF = new IteratorFabonacci(10);        for (int number : iteratorF) {            System.out.printf(number + " ");        }    }}/*输出结果:1 1 2 3 5 8 13 21 34 55 */

转载于:https://my.oschina.net/wjzk/blog/601323

你可能感兴趣的文章
for语句
查看>>
网页总结
查看>>
我用过的那些电脑 -- 致逝去的美好时光
查看>>
SQLiteOpenHelper学习
查看>>
Tomcat路径下目录的介绍
查看>>
TopCoder SRM 628 DIV 2
查看>>
实验吧_简单的sql注入_1、2、3
查看>>
BZOJ3779重组病毒LCT
查看>>
T-SQL (一)
查看>>
词法分析
查看>>
安装laravel框架
查看>>
Linux 目录结构
查看>>
第二次实验
查看>>
R中,求五数,最小值、下四分位数、中位数、上四分位数、最大值
查看>>
【python-Day3】
查看>>
接上一篇——上海有哪些值得加入的互联网公司
查看>>
VFS相关内容
查看>>
【转载】同步和互斥的POSIX支持(互斥锁,条件变量,自旋锁)
查看>>
+load和+initialize的区别
查看>>
hdu 1319 Prime Cuts
查看>>