`

Java泛型 创建实例

 
阅读更多
  1. 工厂模式在泛型中创建实例
    interface FactoryI<T> {
    	T create();
    }
    
    class Foo<T> {
    	private T x;
    
    	public <F extends FactoryI<T>> Foo(F factory) {
    		x = factory.create();
    	}
    }
    
    // 对于不是自己定义的Java对象创建
    class IntegerFactory implements FactoryI<Integer> {
    
    	@Override
    	public Integer create() {
    		return new Integer(0);
    	}
    }
    
    // 自定义的对象可以添加内部工厂方法或者内部工厂类
    class Widget {
    	public static class Factory implements FactoryI<Widget> {
    
    		@Override
    		public Widget create() {
    			return new Widget();
    		}
    
    	}
    }
    
    public class FactoryConstraint {
    	public static void main(String[] args) {
    		new Foo<Integer>(new IntegerFactory());
    		new Foo<Widget>(new Widget.Factory());
    	}
    }
     
  2. 模板方法方式
    abstract class GenericWithCreate<T> {
    	final T element;
    
    	public GenericWithCreate() {
    		element = create();
    	}
    
    	abstract T create();
    }
    
    class X {
    
    }
    
    class Creator extends GenericWithCreate<X> {
    	@Override
    	X create() {
    		return new X();
    	}
    
    	void f() {
    		System.out.println(element.getClass().getSimpleName());
    	}
    
    }
    
    public class CreatorGeneric {
    	public static void main(String[] args) {
    		Creator creator = new Creator();
    		creator.f();
    	}
    }
    
     

 

分享到:
评论

相关推荐

    Java泛型应用实例

    在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时的类型检查和强制转换。 首先,让我们理解泛型的基本概念。泛型主要由两部分组成:类型参数和类型边界。类型参数是在类或...

    java 泛型入门 实例

    本篇文章将带你入门Java泛型,通过实例深入理解其核心概念。 1. **泛型的基本概念** - 泛型是一种允许在定义类、接口和方法时使用类型参数的机制。这使得代码可以在编译时期检查类型,避免了不必要的类型转换,并...

    JAVA泛型加减乘除

    这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...

    Java让泛型实例化的方法

    Java让泛型实例化的方法 Java是一种静态类型语言,它可以在编译时检查类型的正确性,以避免运行时的类型错误。然而,在 Java 中使用泛型时,会出现一个问题:如何实例化泛型对象?在 Java 中,泛型擦除机制使得...

    Java泛型实例

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。泛型允许我们在编写类、接口和方法时指定参数化类型,使得代码在编译时就能进行类型检查...

    java泛型技术之发展

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展...

    java 泛型接口示例

    下面我们将详细探讨Java泛型接口的相关知识点。 1. **泛型接口的定义** 泛型接口的定义方式与普通接口类似,只是在接口名之后添加了尖括号`&lt;T&gt;`,其中`T`是一个类型参数,代表某种未知的数据类型。例如: ```java...

    java泛型实例讲解代码.rar

    通过阅读和理解`java泛型实例讲解代码`中的代码,你可以深入学习如何在实际编程中应用这些概念,以及它们如何提升代码的健壮性和可维护性。这个压缩包可能包含了各种示例,如泛型类、泛型方法、边界限制等,通过这些...

    全面总结Java泛型--实例

    标题与描述均提到了“全面总结Java泛型--实例”,这表明文章旨在深入解析Java泛型的概念,并通过具体示例来展示其应用。Java泛型是Java编程语言的一个强大特性,它允许在编译时检查类型安全,并且所有的强制转换都是...

    SUN公司Java泛型编程文档

    5. **创建泛型实例**:创建泛型类的实例时,需要提供具体的类型参数,如`List&lt;String&gt; list = new ArrayList()`。 6. **基本类型与泛型**:Java泛型不支持原始类型(如int、char)作为类型参数,但可以通过使用专门...

    Java 泛型擦除后的三种补救方法

    然而,Java 的泛型在运行时是被擦除的,这意味着在运行时刻,所有的泛型类型信息都会丢失,无法直接用来创建对象或进行类型检查。这导致我们无法使用 `new T()` 或 `instanceof` 这样的操作。为了解决这个问题,我们...

    关于java基础的泛型的练习

    Java泛型是Java SE 5.0引入的一个重要特性,它极大地增强了代码的类型安全性和可读性。泛型在编程中的应用广泛,特别是在集合框架中,使得我们可以在编译时就检查类型,避免了不必要的类型转换,并且提高了代码的...

    java泛型学习ppt

    Java 泛型是 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型...

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

    - 泛型类实例化:创建泛型类的实例时,需要指定类型参数的实际类型,如`TestGen, Integer&gt; t = new TestGen, Integer&gt;();` 2. **泛型通配符** - 无界通配符:`?`表示任何类型,但无法在方法内部进行添加操作,...

    Java泛型技术之发展.pdf

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展...

    java泛型深入.pdf

    也不能实例化泛型类型参数,比如`new T()`是不允许的,但是可以通过反射使用`Class`的`newInstance()`方法来创建实例。 通过反射API,可以通过`ParameterizedType`接口来获取泛型类的类型参数,例如: ```java ...

    java泛型Demo

    这个"java泛型Demo"可能包含了一些具体的例子,如创建泛型类、泛型方法的使用,以及如何通过泛型处理集合。通过这些示例,你可以更直观地理解泛型的工作原理和实际应用。 总之,Java泛型是提高代码质量、安全性和...

Global site tag (gtag.js) - Google Analytics