`
zds420
  • 浏览: 203715 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Java泛型方法,返回泛型类型实例

    博客分类:
  • J2SE
 
阅读更多
package com.study.generics;

//通过泛型方法,返回泛型类型实例
public class GenericsMethodDemo02 {
	
	public static void main(String []args) {
		
		GenericsMethodBackInstace<Float> demo02 = genericStaticMethod(100.33f);//如果传入100f则打印00.0
		System.out.println(demo02.getVariable());
		
		GenericsMethodDemo02 demo= new GenericsMethodDemo02();
		GenericsMethodBackInstace<Integer> demo03 = demo.genericMethod(100);
		System.out.println(demo03.getVariable());
		
		//==================================
		//因为泛型方法在GenericsMethodDemo02类型中定义则实例化调用本类的泛型方法
		//在使用泛型方法返回实例化的类返回数据
		GenericsBackInstace<String> demo04 = demo.geneMethod("泛型方法返回泛型类型实例化");
		System.out.println(demo04.getVariable());
	}
	
	//为什么泛型的方法命名: public <泛型类> 返回泛型方法类  泛型方法命名
	//方法中传入或返回的泛型类型由调用方法时所设置的参数类型决定
	public static <Type extends Number> GenericsMethodBackInstace<Type> genericStaticMethod(Type t) {
		GenericsMethodBackInstace<Type> instace = new GenericsMethodBackInstace<Type>();
		instace.setVariable(t);	//通过泛型方法传递参数,返回泛型实例
		return instace;
	}
	public  <Type extends Number> GenericsMethodBackInstace<Type> genericMethod(Type t) {
		GenericsMethodBackInstace<Type> instace = new GenericsMethodBackInstace<Type>();
		instace.setVariable(t);	//通过泛型方法传递参数,返回泛型实例
		return instace;
	}
	
	//================================================================
	public <Type> GenericsBackInstace<Type> geneMethod(Type t) {
		GenericsBackInstace<Type> instace = new GenericsBackInstace<Type>();
		instace.setVariable(t);
		return instace;
	}
	
}

class GenericsMethodBackInstace<Type extends Number> {	//泛型受限制,中哦<T extends Number>中的T 可以自定义
	private Type variable;	//T type简称
	
	public Type getVariable() {
		return this.variable;
	}
	
	public Type setVariable(Type variable) {
		return this.variable=variable;
	}
}

class GenericsBackInstace<Type> {	//泛型受限制,中哦<Type>中的Type可以自定义如:Info,Object,String
	private Type variable;	//T type简称
	
	public Type getVariable() {
		return this.variable;
	}
	
	public Type setVariable(Type variable) {
		return this.variable=variable;
	}
}

 

分享到:
评论

相关推荐

    java 泛型方法使用示例

    下面我们将深入探讨Java泛型方法的概念、语法以及使用示例。 **一、泛型方法概念** 泛型方法是一种具有类型参数的方法,这些类型参数可以在方法声明时指定,并在方法体内部使用。与类的泛型类似,它们提供了编译时...

    Java泛型应用实例

    Java泛型是Java编程语言中的一个强大特性,它允许我们在定义类、接口和方法时指定类型参数,从而实现代码的重用和类型安全。在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时...

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

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

    java 泛型类的类型识别示例

    综上所述,虽然Java泛型在编译后会进行类型擦除,但通过上述技巧,我们仍然能够在运行时获得关于泛型类实例化类型的一些信息。在实际开发中,这些方法可以帮助我们编写更加灵活和安全的代码。在示例文件`GenericRTTI...

    Java泛型实例

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

    JAVA泛型加减乘除

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

    java 泛型入门 实例

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

    Java泛型类型擦除后的补偿

    总结来说,Java泛型的类型擦除虽然在运行时消除了类型信息,但通过编译时的类型检查、桥接方法、通配符等补偿机制,仍然实现了强大的类型安全和便利性。开发者应理解这些补偿机制,以便更好地利用Java泛型进行类型...

    很好的Java泛型的总结

    Java泛型是Java语言中的一种机制,用于在编译期检查类型安全。Java泛型的出现解决了Java早期版本中类型安全检查的缺陷。Java泛型的好处是可以在编译期检查类型安全,避免了运行时的ClassCastException。 Java泛型的...

    java泛型技术之发展

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

    Java泛型的用法及T.class的获取过程解析

    Java泛型是Java编程语言中的一种重要特性,它允许开发者在编写代码时指定类型参数,从而提高代码的灵活性和可读性。本文将详细介绍Java泛型的用法 及T.class的获取过程解析。 一、泛型的基本概念 泛型是Java 5中...

    JAVA利用泛型返回类型不同的对象方法

    在本篇讨论的主题“JAVA利用泛型返回类型不同的对象方法”中,我们将深入探讨如何通过泛型来解决返回不同类型对象的问题。 首先,我们需要理解元组的概念。元组是一种可以容纳多个不同类型值的数据结构,这些值被...

    java泛型实例讲解代码.rar

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入,极大地增强了...这个压缩包可能包含了各种示例,如泛型类、泛型方法、边界限制等,通过这些实例,你可以亲手实践并掌握Java泛型的用法。

    java 泛型接口示例

    综上所述,Java泛型接口提供了强大的类型安全性,允许我们在接口中定义通用的方法,并在实现时指定具体的类型。通过类型参数约束、通配符、类型擦除和类型推断等机制,我们可以灵活地设计和使用泛型接口,提高代码的...

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

    - Java泛型在编译后会进行类型擦除,这意味着在运行时,所有的泛型类型信息都会被替换为它们的边界类型或`Object`。因此,泛型并不改变对象的实际类型,仅在编译时提供类型检查。 6. **泛型与集合** - Java集合...

    java泛型的内部原理及更深应用

    Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...

    Java让泛型实例化的方法

    在上面的代码中,我们使用 `getClass().getGenericSuperclass()` 方法获取当前类的父类,然后使用 `ParameterizedType` 对象获取泛型类型参数。最后,我们使用 `clazz.newInstance()` 方法实例化泛型对象。 完整...

Global site tag (gtag.js) - Google Analytics