`
chasewade
  • 浏览: 14380 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用泛型和没使用泛型的区别

    博客分类:
  • J2se
 
阅读更多

使用泛型的类

/**
 * 使用泛型的类
 * @author chase
 *
 * @param <T>
 */
class Gen<T> {
	
	private T ob; //定义泛型的成员变量
	
	public Gen(T ob) {
		this.ob = ob;
	}

	public T getOb() {
		return ob;
	}

	public void setOb(T ob) {
		this.ob = ob;
	}
	
	public void showType() {
		System.out.println("T的实际类型是:" + ob.getClass().getName());
	}
}

public class GenDemo {

	public static void main(String args[]) {
		/** 定义泛型类Gen的一个Integer版本 */
		Gen<Integer> intOb = new Gen<Integer>(88);
		intOb.showType();
		int i = intOb.getOb();
		System.out.println("value = " + i);
		System.out.println("============================");
		
		/** 定义泛型类Gen的String版本 */
		Gen<String> strOb = new Gen<String>("Hello Chase!");
		strOb.showType();
		String s = strOb.getOb();
		System.out.println("value = " + s);
		System.out.println("============================");
		
		/** 定义泛型类Gen的double版本 */
		Gen<Double> dubOb = new Gen<Double>(3.1415926);
		dubOb.showType();
		Double d = dubOb.getOb();
		System.out.println("value = " + d);
	}
}

 

 

 

没使用泛型的类

/**
 * 未使用泛型的GenDemo
 * @author Administrator
 *
 */

class Gen2 {
	
	private Object Ob; //定义一个普通类型成员
	
	public Gen2(Object ob) {
		this.Ob = ob;
	}

	public Object getOb() {
		return Ob;
	}

	public void setOb(Object ob) {
		Ob = ob;
	}
	
	public void showType() {
		System.out.println("T的 实际类型是:" + Ob.getClass().getName());
	}
}

public class GenDemo2 {
	public static void main(String[] args) {
		/** 定义类Gen2的一个Integer版本 */
		Gen2 intOb = new Gen2(new Integer(88));
		intOb.showType();
		int i = (Integer)intOb.getOb();
		System.out.println("value = " + i);
		System.out.println("=================");
		
		/** 定义类Gen2的一个String版本 */
		Gen2 strOb = new Gen2(new String("Hello Chase!"));
		strOb.showType();
		String s = (String)strOb.getOb();
		System.out.println("value = " + s);
	}
}

 运行的结果都一样

分享到:
评论

相关推荐

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

    本篇文章将深入探讨C#中的泛型使用方法,帮助你更好地理解和应用这一关键概念。 首先,我们需要理解什么是泛型。泛型允许我们在定义类、接口、委托和方法时,不指定具体的类型参数,而是使用一个占位符,如`T`、`K`...

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

    在C#编程中,泛型是一种强大的工具,它允许我们编写可重用的代码,同时保持类型安全性和高效性。本文将深入探讨泛型类、泛型方法、泛型接口和泛型委托,并通过实例来阐述它们的应用。 首先,我们来看泛型类。泛型类...

    泛型和泛型集合类用法

    ### 泛型和泛型集合类用法详解 #### 一、泛型基础概念 泛型是现代编程语言中的一项重要特性,它允许开发者在不指定具体数据类型的情况下编写类或方法,从而达到代码重用的目的。在.NET Framework 2.0及以后版本中...

    泛型学习和泛型接口和泛型经典示例

    泛型学习和泛型接口和泛型经典示例

    电影售票系统使用泛型集合

    使用泛型集合维护有继承关系的电影票对象 座位数可以在系统中指定 点击座位可购买不同类型的电影票 使用简单工厂模式创建不同类型的电影票 使用多态实现不同类型电影票的价格计算 使用接口实现电影票的打印 使用序列...

    泛型 反射 相关概念方法使用

    泛型和反射是Java编程语言中的两个重要特性,它们各自有着独特的功能,但在某些场景下也可以结合使用。本文将深入探讨这两个概念以及相关的使用方法。 首先,我们来了解泛型。泛型是Java 5引入的一项特性,它允许在...

    C#泛型集合使用实例

    - 性能提升:由于泛型集合使用实际的数据类型,避免了装箱和拆箱操作,提高了性能。 - 代码重用:泛型集合可以用于处理任何类型的对象,提高代码的复用性。 8. **CarMessage 示例** 假设`CarMessage`是类的名称...

    [Java泛型和集合].

    至于源代码部分,可能包含了示例程序,演示了如何使用泛型和集合框架进行实际编程。通过阅读和运行这些代码,你可以更好地理解泛型和集合在实际项目中的应用。 总之,Java泛型和集合是提高代码质量和效率的关键工具...

    Java泛型使用详细分析.pdf

    在本文中,我们将详细介绍 Java 泛型的使用方法和实现原理。 一、泛型的简介 泛型是 Java 5 中引入的一种语言特性,旨在解决类型安全问题。在 Java 中,泛型可以应用于集合、类、接口和方法中。泛型的主要目的是...

    Java中泛型的各种使用

    泛型是Java SE 5.0引入的新特性,它允许在类、接口和方法中使用类型参数。类型参数类似于函数参数,但它们代表的是类型而不是值。例如,`List&lt;T&gt;`中的`T`就是一个类型参数,`T`代表某种具体的类型,如`String`、`...

    c#使用 和 继承 泛型类

    本篇文章将深入探讨如何在C#中使用和继承泛型类。 首先,让我们理解什么是泛型类。泛型类是一种模板或蓝图,它定义了参数化类型,这些类型在类实例化时可以被具体的类型替换。在C#中,我们使用尖括号`&lt;&gt;`来声明泛型...

    gson解析泛型和将泛型转为json字符串

    泛型允许我们在类、接口和方法中使用类型参数,从而提高了代码的类型安全性和重用性。当我们使用Gson与泛型结合时,可以更方便地处理各种类型的对象,无论它们是基本类型还是自定义类。 1. **Gson与泛型解析** 当...

    java泛型类和函数

    在Java中,泛型是一种允许开发者在类、接口和方法中使用类型参数的功能。通过使用泛型,可以在编写代码时指定一个或多个类型参数,从而使得编写的代码更加灵活且重用性更高。这种机制在Java 5中被引入,并在集合框架...

    JAVA-泛型课件-泛型课件

    泛型,即参数化类型(Parameterized Types),是允许在定义类、接口和方法时使用类型参数的特性。在创建类、接口或方法的时候,可以用一个或多个类型作为参数。泛型的关键在于类型参数化,这意味着可以将操作的数据...

    如何使用泛型集合

    如何使用泛型和泛型集合,更好的了解泛型和泛型集合

    JAVA5泛型和反射

    例如,使用泛型的 `Hashtable` 可以声明为 `Hashtable, Value&gt;`,其中 `Key` 和 `Value` 是类型参数,表示键和值的具体类型。这样,当向泛型 `Hashtable` 添加或取出元素时,编译器会检查类型是否匹配,无需显式的...

    java 泛型方法使用示例

    在实际开发中,理解并熟练掌握泛型方法的使用对于提升编程效率和代码质量至关重要。 以上就是关于Java泛型方法的基本介绍和使用示例,希望对你有所帮助。如果你想要进一步了解或实践,可以参考提供的`GenericMethod...

    EF,MVC使用泛型仓储模式和工作单元实现增删查改

    通过上述步骤,我们可以使用EF、MVC、泛型仓储模式和工作单元模式来构建一个高效且易于维护的数据访问层。这种方式使得代码更易于测试,同时也提高了代码的复用性和可扩展性。在实际项目中,可以根据具体需求进行...

Global site tag (gtag.js) - Google Analytics