`
与你同在
  • 浏览: 21213 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

一个简单的泛型例子

阅读更多

对类的泛型, 我们看一下例子:
public class Box<T> {
    private T t;
    
    private void add(T t) {
        this.t = t;
    }
    
    public T get() {
        return t;
    }
    
     public static void main(String[] args) {
        Box<Integer> boxInt = new Box<Integer>();
        boxInt.add(1);
        Integer intResult = boxInt.get();
        
        Box<String> boxStr = new Box<String>();
        boxStr.add("Test");
        String strResult = boxStr.get();
                
        System.out.println("Integer Result : " + intResult);
        System.out.println("String Result : " + strResult);
    }
}
运行结果:

Integer Result : 1
String Result : Test

是不是很有意思, 我们写了一个类, 但这个类的类型却不适固定的, 他即可以为String, 又可以为Integer, 可以为任意定义的类型(非primitive)。

简单解释一下, T就是type, java定义的一个泛型的概念, 即不适关键字, 也不适类, 可以适应任何类型!e.g.:
当 我们传入String类型的时候, 那么T的类型就是String, 如果String strResult = boxStr.get(); 被替换成 Integer strResult = boxstr.get();就会报错, 因为类型不匹配。这样的好处就是可以再代码中发现错误。


这样的代码再我们日常编码中比较少见, 我们比较常用的只是对Collection类的一些泛型使用。但是再一些框架程序中, 我们经常可以看到这样编程的影子! 如easyMock等。

分享到:
评论

相关推荐

    java 一个关于泛型的简单例子

    此外,文件名`Java.jpg`可能表示的是一个与这个泛型例子相关的图片,可能是一个截图或者示意图,用于帮助理解泛型的概念或者`MyFirstGeneric`类的结构和用法。在实际学习过程中,视觉辅助工具往往能够帮助我们更好地...

    Repeater和泛型数据结合的简单例子

    在本例中,我们将深入探讨如何将Repeater控件与泛型数据结合使用,实现一个不依赖数据库的简单应用。 首先,让我们理解Repeater控件的工作原理。Repeater是一个非常灵活的数据呈现工具,它不会对数据进行任何格式化...

    C#泛型接口实例

    在`Generic_InterfaceDemo`项目中,我们可以创建一个简单的程序,利用泛型接口处理不同类型的数据。例如,创建一个处理数字和字符串的类,并实现`IMyGenericInterface`: ```csharp public class NumberProcessor :...

    关于体检的一个小例子应用泛型集合

    本示例以“关于体检的一个小例子应用泛型集合”为主题,旨在展示如何利用泛型集合来处理数据,这对于任何C#开发者来说都是一个实用而经典的案例。 泛型集合,如List、Dictionary, TValue&gt;等,允许我们在定义集合时...

    java泛型指南 经典

    例如,我们可以定义一个简单的泛型类 `Box`: ```java public class Box&lt;T&gt; { private T item; public void setItem(T item) { this.item = item; } public T getItem() { return item; } } ``` 在这个例子...

    设计模式之从简单工厂到泛型简单工厂

    下面是一个简单的例子: ```java public interface IFactory&lt;T&gt; { T create(); } public class UserAccountFactory implements IFactory&lt;UserAccount&gt; { @Override public UserAccount create() { return new ...

    C__泛型的运用

    下面是一个简单的例子: ```csharp List&lt;int&gt; intList = new List(); // 创建一个整数列表 intList.Add(1); // 添加整数 int firstItem = intList[0]; // 访问第一个元素 ``` #### 四、泛型集合 - **List**:最...

    C#泛型C#泛型C#泛型

    类型参数是一个简单的标识符,它指示了用来创建一个构造类型的类型参数的占位符。类型参数是在后面将要被提供的类型的形式占位符。例如: ``` class C&lt;T&gt; { } ``` 这个声明定义了一个泛型类 C,其中 T 是一个类型...

    【ASP.NET编程知识】.NET开发基础从简单的例子理解泛型 分享.docx

    .NET开发基础从简单的例子理解泛型 泛型是.NET框架中的一个重要特性,它允许开发者创建类型安全且可重用的数据结构和算法。泛型的主要优点在于提高了代码的灵活性、效率和安全性,避免了不必要的类型转换,并减少了...

    Java1.5泛型指南中文版

    例如,下面是一个简单的泛型类`Box`的例子: ```java public class Box&lt;T&gt; { private T content; public void setContent(T content) { this.content = content; } public T getContent() { return content;...

    Java泛型应用实例

    例如,下面是一个简单的泛型方法,用于交换两个变量的值: ```java public static &lt;T&gt; void swap(T[] array, int i, int j) { T temp = array[i]; array[i] = array[j]; array[j] = temp; } ``` 在这个例子中,...

    枚举和泛型的应用举例

    以下是一个简单的枚举类型`Color`的例子: ```java public enum Color { RED, GREEN, BLUE } ``` 枚举在多处有应用,例如在表示状态、方向、星期等场景。枚举的常量可以在程序中直接使用,避免了硬编码字符串,...

    java 继承非泛型类示例

    以下是一个简单的非泛型类示例: ```java public class NonGenericClass { private int value; public NonGenericClass(int value) { this.value = value; } public int getValue() { return value; } ...

    C#学习之路--泛型

    例如,下面是一个简单的泛型方法定义: ```csharp public T Swap(T a, T b) { T temp = a; a = b; b = temp; return a; } ``` 在这个例子中,`T`就是一个类型参数,表示这个方法可以接受任何类型的参数。 **...

    WCF中应用泛型

    - **Person** 类作为所有人的基本模型,包含了姓名(`Name`)、年龄(`Age`)等属性,并且提供了一个虚拟方法 `Introduce()` 用于返回一个简单的自我介绍字符串。 - **Student** 类继承自 `Person` 类,增加了一个 `...

    C#简单实现泛型选择排序

    要实现泛型选择排序,我们需要创建一个泛型方法,该方法接受一个IList类型的参数,其中T是我们的类型参数。IList接口提供了添加、删除和访问元素所需的方法,适合用于排序操作。 ```csharp public static void ...

    c#使用 和 继承 泛型类

    例如,下面是一个简单的泛型类`MyGenericClass&lt;T&gt;`的定义: ```csharp public class MyGenericClass { private T value; public MyGenericClass(T initialValue) { this.value = initialValue; } public ...

    泛型编程的案例

    例如,一个简单的模板函数可以实现两个数值的加法: ```cpp template T add(T a, T b) { return a + b; } int main() { int resultInt = add(1, 2); double resultDouble = add(1.5, 2.3); return 0; } ``` ...

    java泛型类和函数

    考虑下面的例子,使用泛型创建一个简单的`Map`实例: ```java Map, String&gt; map = new HashMap, String&gt;(); map.put("key", "blarg"); String value = map.get("key"); // 不需要类型转换 ``` 在这个例子中,`Map`...

    C# 泛型,以及泛型接口的,简单的工厂模式,实现新闻阅览器

    在我们的例子中,我们可以创建一个`NewsFactory`类,该类有方法如`CreateNews()`,根据传入的类型(可能是字符串,代表新闻类别)返回对应的新闻对象,利用泛型可以更高效地实现这一过程。 至于新闻阅览器的实现,...

Global site tag (gtag.js) - Google Analytics