`

实例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

 

分享到:
评论

相关推荐

    C#泛型类、泛型方法、泛型接口、泛型委托的实例

    下面的例子展示了一个返回两个参数最大值的泛型方法: ```csharp public static T MaxValue(T a, T b) where T : IComparable { if (a.CompareTo(b) &gt; 0) return a; else return b; } ``` 泛型接口则定义了...

    实例讲解Java泛型编程的快速入门

    - 泛型方法是在方法声明中使用类型参数,如`public &lt;T&gt; T max(List&lt;T&gt; list)`,这个方法可以找到列表中的最大值,无论列表包含何种类型。 - 泛型方法的类型参数独立于类的类型参数,因此可以在非泛型类中定义泛型...

    Java 基础(4-8) - 泛型机制详解.pdf

    3. **泛型方法**:在方法签名中使用泛型,如`public &lt;T&gt; T max(List&lt;T&gt; list) {...}`,这个方法可以处理任何类型列表的求最大值问题。 4. **泛型的上下限**:可以限制类型参数的范围,如`List&lt;? super Number&gt;`表示...

    java 泛型入门 实例

    - **泛型方法**:在方法签名中使用类型参数,例如`public &lt;T&gt; T max(List&lt;T&gt; list)`,这个方法可以找出列表中的最大值,而不论列表元素是什么类型。 - **通配符**:`?`通配符用于表示任意类型。例如,`List&lt;?&gt;`...

    Java泛型实例

    下面是一个示例,展示了如何定义一个返回最大值的泛型方法: ```java public static &lt;T extends Comparable&lt;T&gt;&gt; T max(T a, T b) { return a.compareTo(b) &gt;= 0 ? a : b; } ``` 这个`max`方法接受两个可比较的...

    Ch06 集合、索引器与泛型.ppt

    【第六章 集合、索引器与泛型】 集合是编程中组织和管理数据的重要方式,尤其在C#中,.NET框架提供了丰富的集合类供开发者使用。集合类通常位于System.Collections命名空间,它们提供了灵活的数据存储和操作功能。...

    动态初始化类+参数泛型化+统一返回值.zip

    例如,一个获取列表最大值的方法,通过泛型可以处理Integer、Double等各种类型的列表。 3. **统一返回值**: 在设计函数或方法时,为了简化代码管理和提高代码一致性,我们经常采用统一返回值的方式来处理结果。这...

    c# 泛型的使用,教你如何用泛型

    这样,当我们实例化这些泛型类型时,可以传入任何类型的参数,从而实现泛型类型的实例化。例如,你可以创建一个泛型列表`List&lt;T&gt;`,其中`T`代表你想要存储的数据类型。 1. **泛型类**:C#中的泛型类是在类定义时...

    C#中的集合与泛型应用实例

    本篇文章将深入探讨这两个主题,并通过实例演示其应用场景。 首先,我们来理解什么是集合。在C#中,集合是一组具有相同数据类型的对象容器。它们提供了一种组织和管理数据的方式,使得可以方便地访问和操作这些数据...

    java泛型的使用

    2. 接口:泛型接口与泛型类类似,如`Comparator&lt;T&gt;`,可以比较任意类型的对象。 3. 方法:你也可以在方法签名中使用泛型,比如`public static &lt;T&gt; T max(List&lt;T&gt; list)`,这个方法可以找出列表中的最大元素,而`T`...

    JAVA泛型简单排序实例

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

    3个泛型项目源码.rar

    泛型类定义了一组类型参数,这些参数在实例化类或使用泛型接口、方法时会被具体的类型替换。例如,C#中的`List&lt;T&gt;`就是泛型类,其中`T`就是类型参数,代表一个未知的数据类型。当我们创建`List&lt;int&gt;`时,`T`就被替换...

    Java泛型指南

    #### 类型参数与泛型接口 泛型的基本概念是类型参数(Type Parameter)。例如,在下面的代码中,`List&lt;E&gt;` 是一个泛型接口,其中 `E` 是类型参数,代表元素类型。 ```java public interface List&lt;E&gt; { void add(E...

    C#泛型简介

    例如,你可以定义一个接受任意类型参数并返回该类型最大值的一般方法: ```csharp public static T Max(T a, T b) where T : IComparable { return a.CompareTo(b) &gt; 0 ? a : b; } ``` 在这个例子中,`T`是类型...

    C#泛型实例

    这个方法可以根据`T`的类型执行不同的分析操作,如计算平均值、最大值或最小值。 最后,我们还可以利用泛型集合的特性,如`List&lt;T&gt;`和`Dictionary, TValue&gt;`。在健康检查数据的存储和检索中,我们可以使用这些集合...

    泛型编程与stl_11066337.rar

    例如,一个简单的函数模板实现求两个数值类型的最大值: ```cpp template T max(T a, T b) { return (a &gt; b) ? a : b; } ``` 这里的`T`是一个类型参数,可以是任何数据类型。当调用`max`时,编译器会根据传入的...

    JAVA5.0泛型指南

    此方法可以找到列表中的最大值,无论列表中的元素是什么类型。 5. 类型通配符:在某些情况下,我们可能需要处理未知类型的泛型对象。类型通配符如 `?` 可用于表示任意类型。例如,`void addAll(Collection...

    面试必须资料java泛型攻略、

    例如,下面的方法返回两个可比较对象中的最大值: ```java public &lt;T extends Comparable&lt;T&gt;&gt; T max(T t1, T t2) { if (t1.compareTo(t2) &gt; 0) { return t1; } else { return t2; } } ``` 这里,`T`被限定为...

Global site tag (gtag.js) - Google Analytics