`

实例188 -泛型化接口与最大值

 
阅读更多

除了 泛型类  和 泛型方法,Java中还可以定义 泛型接口。

在实现这个 泛型接口 时需要注意,实现类的泛型类型参数 要求与 接口的泛型类型参数 相匹配。

例如在本实例中,接口的声明如下:

public interface Maximum<T extends Comparable<T>>

其实现类的声明如下:

public class GenericComparison<T extends  Comparable<T>> implements Comparable<T>

 

心法领悟188: 泛型接口的应用。

一个大型网站的后台往往使用多个数据表,可以将一些公共的操作如数据的保存、删除、修改和查询放在一个泛型DAO接口中进行定义。再针对使用的持久层技术,如Hibernate,编写该DAO的实现类。以后对于每一种需要持久化的对象,继承这个DAO实现类,增加特有方法即可。

 

package com.mingrisoft.generic;

public interface Maximum<T extends Comparable<T>> {
    T getMax(T[] array);
}

 

package com.mingrisoft.generic;

public class GenericComparison<T extends Comparable<T>> implements Maximum<T> {
    
    @Override
    public T getMax(T[] array) {
        if (array == null || array.length == 0) {
            return null;
        }
        T max = array[0];
        for (int i = 1; i < array.length; i++) {
            if (max.compareTo(array[i]) < 0) {
                max = array[i];
            }
        }
        return max;
    }
}

 

package com.mingrisoft.generic;

public class GenericComparisonTest {
    public static void main(String[] args) {
        String[] books = { "Java从入门到精通(第2版)", "Java编程宝典", "细说Java", "视频学Java" };
        System.out.println("明日科技新书列表:");
        for (String book : books) {
            System.out.println(book);
        }
        GenericComparison<String> gc = new GenericComparison<String>();
        String max = gc.getMax(books);
        System.out.println("按名称排序最后一本书:");
        System.out.println(max);
    }
}

 运行结果:

明日科技新书列表:

Java从入门到精通(第2版)

Java编程宝典

细说Java

视频学Java

按名称排序最后一本书:

视频学Java

 

分享到:
评论

相关推荐

    JAVA泛型简单排序实例

    JAVA泛型源代码实现以下功能:返回数组元素的最大值/最小值下标;判断数组元素是否按升序排列;T对象数组排序;二分法查找key元素;

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例163 自定义最大化、最小化和关闭按钮 213 实例164 手动改变自制窗体的大小 215 实例165 禁止改变窗体的大小 218 7.3 设置窗体的标题栏 218 实例166 使窗体标题栏文字右对齐 218 实例167 没有标题栏也可以更改...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例188 泛型化接口与最大值 239 实例189 使用通配符增强泛型 240 实例190 泛型化的折半查找法 241 第9章 编程常用类 343 9.1 Calendar类的使用 244 实例191 简单的数字时钟 244 实例192 简单的电子时钟 245 实例193...

    java范例开发大全

    实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 ...

    Java范例开发大全 (源程序)

     实例66 求最大值、最小值和平均值 91  5.2 二维数组 92  实例67 二维数组的创建与使用 92  实例68 矩阵转置 93  实例69 奇数阶幻方 94  实例70 求方阵对角线之和 96  实例71 矩阵的加法 97  实例72 ...

    java范例开发大全(pdf&源码)

    实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 ...

    Java范例开发大全(全书源程序)

    实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 ...

    java范例开发大全源代码

     实例66 求最大值、最小值和平均值 91  5.2 二维数组 92  实例67 二维数组的创建与使用 92  实例68 矩阵转置 93  实例69 奇数阶幻方 94  实例70 求方阵对角线之和 96  实例71 矩阵的加法 97  ...

    Java 泛型总结及详解

    主要介绍了Java 泛型的相关资料,并附简单实例代码,需要的朋友可以参考下

    Java-Generics-and-Collections-2:Java Generics and Collections Java泛型和集合

    3.2 集合的最大值 3.3 水果相关示例 3.4 比较 3.5 枚举类型 3.6 多重界限 3.7 桥接器 3.8 协变覆盖 第四章(声明) 4.1 构造函数 4.2 静态成员 4.3 嵌套类 4.4 擦除的工作原理 第五章(进化,而不是革命) 5.1 旧版...

    数据结构实验报告 线性表.doc

    求交集,使用数组,泛型无法实例化,使用实例化Object强制转换方式,存在就添加,判断是否达到数组的最大存储量,扩容,清空数据,重新装数据。 四、实验原始纪录(源程序、数据结构等) public class SinglyList&lt;T&gt;...

    Java开发技术大全 电子版

    10.11.4不能实例化参数类型对象..327 10.12本章小结328 第11章集合329 11.1集合接口与抽象类329 11.1.1Collection接口330 11.1.2Iterator接口330 11.1.3AbstractCollection抽象类331 11.1.4几个常用术语332 ...

    LINQ_to_SQL语法及实例大全

    3.最大 值 25 4.最小 值 26 5.平均 值 26 6.求和 26 7.计数 27 8.带条件计数 27 9.Where限制 28 10.多列(Multiple Columns) 28 11.表达式(Expression) 29 LINQ to SQL语句(7)之Exists/In/Any/All/Contains 29 Exists...

Global site tag (gtag.js) - Google Analytics