JAVA泛型接口
事例代码:
- package com.xt.thins_15_3;
- import java.util.Iterator;
- /**
- * 泛型接口
- *
- * @author xue
- *
- * @param <T>
- */
- interface Generic<T> {
- public T next();
- }
- /**
- * 斐波纳契(一种整数数列),普通类实现
- *
- * @author xue
- *
- */
- class Fibonacci implements Generic<Integer> {
- protected static int count = 0;
- @Override
- public Integer next() {
- // TODO Auto-generated method stub
- return fib(count++);
- }
- public int fib(int n) {
- if (n < 2)
- return 1;
- return fib(n - 2) + fib(n - 1);
- }
- }
- /**
- * 迭代适配器迭代斐波纳契(一种整数数列)
- *
- * @author xue
- *
- */
- class IterableFibonacci extends Fibonacci implements Iterable<Integer> {
- private int size;
- public IterableFibonacci(int size) {
- this.size = size;
- count = 0;
- }
- @Override
- public Iterator<Integer> iterator() {
- // TODO Auto-generated method stub
- return new Iterator<Integer>() {
- @Override
- public void remove() {
- // TODO Auto-generated method stub
- }
- @Override
- public Integer next() {
- // TODO Auto-generated method stub
- size--;
- return IterableFibonacci.this.next();
- }
- @Override
- public boolean hasNext() {
- // TODO Auto-generated method stub
- return size > 0;
- }
- };
- }
- }
- public class FibonacciTest {
- public static void main(String[] args) {
- Fibonacci fib = new Fibonacci();
- for (int i = 0; i < 20; i++) {
- System.out.print(fib.next() + ",");
- }
- System.out.println("\n------------------------------");
- IterableFibonacci ifib = new IterableFibonacci(20);
- for (Integer integer : ifib) {
- System.out.print(integer + ",");
- }
- }
- }
JAVA泛型接口的更多相关文章
- java 泛型接口示例
/* * 泛型接口 */ interface Tool<t> { public void show(T t); //泛型方法 public <e> void print(E e ...
- java泛型接口详解
/* * 泛型接口 */ interface Tool<T> { public void show(T t); //泛型方法 public <E> void print(E e ...
- java 泛型接口和方法
java5后,可以声明泛型接口,声明方式和声明泛型类是一样的. public interface IDAO<T>{} 泛型接口子类有两种方式: 直接在子类后申明泛型: 在子类实现的接口中给 ...
- 全面总结Java泛型
本文对Java泛型进行了全面的总结.文章内容包括普通泛型.通配符.受限泛型.泛型接口.泛型方法.返回泛型类型实例等等. 虽然Scala创始人Martin Odersky说当年正是因为Java泛型的丑陋 ...
- Java 泛型(Generics)
Generics, 类似C++中的模版. 允许在定义类和接口的时候使用类型参数(type parameters), 声明的类型参数在使用的时候用具体的类型来替换. 如 ArrayList<Str ...
- Java泛型用法总结
普通泛型 class Point< T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T ...
- (私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例)
(私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例) https://pan.baidu.com/s/1L54VuFwCdKVnQGVc8vD1TQnwmj java手册 Ja ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java 泛型 -- 泛型类,泛型接口,泛型方法
泛型T泛型的许多最佳例子都来自集合框架,因为泛型让您在保存在集合中的元素上指定类型约束.在定义泛型类或声明泛型类的变量时,使用尖括号来指定形式类型参数.形式类型参数与实际类型参数之间的关系类似于形式方 ...
随机推荐
- C 运算符与表达式
运算(操作)是对数据的加工.最基本的运算形式常常可以用一些简洁的符号来记忆,这些符号称为运算符或操作符.被运算的对象-数据称为运算量或操作数.表达式描述了对哪些数据.以什么顺序以及施加什么样的操作.运 ...
- OC中另外的一个常用技术:通知(Notification)
OC中另外的一个常用技术:通知(Nofitication)其实这里的通知和之前说到的KVO功能很想,也是用于监听操作的,但是和KVO不同的是,KVO只用来监听属性值的变化,这个发送监听的操作是系统控制 ...
- 20151205--JDBC-2
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 项目中经常用到的reset.css文件
html,body{width:100%; height: auto;} *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box- ...
- char str[] 与 char *str的区别详细解析
char* get_str(void) { char str[] = {"abcd"}; return str; } char str[] = {"abcd"} ...
- stat 函数讲解
表头文件: #include <sys/stat.h> #include <unistd.h>定义函数: int stat( ...
- 在linux中限制用户ftp访问权限
1.环境:redhat linux企业版4.ftp为vsftp.被限制用户名为aaa.被限制路径为/bbb.2.建用户:在root用户下,相继进行如下操作 adduser aaa ...
- CentOS 6下配置本地用户访问vsftpd并赋予写权限
一.安装并测试可用性 1.安装命令 yum install vsftpd 2.配置防火墙,加入一行 -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT 在其它机测试 ...
- 【翻译】MVC Music Store 教程-概述(三)
Controller 与传统的Web框架,将传入的URL通常映射到磁盘上的文件.例如:一个URL请求“/Products.aspx" 或"/Products.php”是处理一个Pr ...
- 9.java.lang.ClassCastException
java.lang.ClassCastException 数据类型转换异常 当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常,如下列代码. Object o ...