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 的泛型在运行时是被擦除的,这意味着在运行时刻,所有的泛型类型信息都会丢失,无法直接用来创建对象或进行类型检查。这导致我们无法使用 `new T()` 或 `instanceof` 这样的操作。为了解决这个问题,我们...
综上所述,虽然Java泛型在编译后会进行类型擦除,但通过上述技巧,我们仍然能够在运行时获得关于泛型类实例化类型的一些信息。在实际开发中,这些方法可以帮助我们编写更加灵活和安全的代码。在示例文件`GenericRTTI...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。泛型允许我们在编写类、接口和方法时指定参数化类型,使得代码在编译时就能进行类型检查...
这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...
本篇文章将带你入门Java泛型,通过实例深入理解其核心概念。 1. **泛型的基本概念** - 泛型是一种允许在定义类、接口和方法时使用类型参数的机制。这使得代码可以在编译时期检查类型,避免了不必要的类型转换,并...
总结来说,Java泛型的类型擦除虽然在运行时消除了类型信息,但通过编译时的类型检查、桥接方法、通配符等补偿机制,仍然实现了强大的类型安全和便利性。开发者应理解这些补偿机制,以便更好地利用Java泛型进行类型...
Java泛型是Java语言中的一种机制,用于在编译期检查类型安全。Java泛型的出现解决了Java早期版本中类型安全检查的缺陷。Java泛型的好处是可以在编译期检查类型安全,避免了运行时的ClassCastException。 Java泛型的...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展...
Java泛型是Java编程语言中的一种重要特性,它允许开发者在编写代码时指定类型参数,从而提高代码的灵活性和可读性。本文将详细介绍Java泛型的用法 及T.class的获取过程解析。 一、泛型的基本概念 泛型是Java 5中...
在本篇讨论的主题“JAVA利用泛型返回类型不同的对象方法”中,我们将深入探讨如何通过泛型来解决返回不同类型对象的问题。 首先,我们需要理解元组的概念。元组是一种可以容纳多个不同类型值的数据结构,这些值被...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入,极大地增强了...这个压缩包可能包含了各种示例,如泛型类、泛型方法、边界限制等,通过这些实例,你可以亲手实践并掌握Java泛型的用法。
综上所述,Java泛型接口提供了强大的类型安全性,允许我们在接口中定义通用的方法,并在实现时指定具体的类型。通过类型参数约束、通配符、类型擦除和类型推断等机制,我们可以灵活地设计和使用泛型接口,提高代码的...
- Java泛型在编译后会进行类型擦除,这意味着在运行时,所有的泛型类型信息都会被替换为它们的边界类型或`Object`。因此,泛型并不改变对象的实际类型,仅在编译时提供类型检查。 6. **泛型与集合** - Java集合...
Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...
在上面的代码中,我们使用 `getClass().getGenericSuperclass()` 方法获取当前类的父类,然后使用 `ParameterizedType` 对象获取泛型类型参数。最后,我们使用 `clazz.newInstance()` 方法实例化泛型对象。 完整...