java泛型介绍(代码片段)

author author     2022-12-22     679

关键词:

//Class using Generics
class Booty<ParamType>
    ParamType variable;

    public Booty(ParamType variable) 
        this.variable = variable;
    

    public ParamType getVariable() 
        return variable;
    

    public void setVariable(ParamType variable) 
        this.variable = variable;
    

//Class not using generics
class Cat
    Object object;

    public Cat(Object object) 
        this.object = object;
    

    public Object getObject() 
        return object;
    

    public void setObject(Object object) 
        this.object = object;
    


public class Main 

    public static void main(String[] args) 


        Booty<String> booty1 = new Booty<String>("pickles are delicious"); //As you can see, we initialize the object as a String, and the thing in the parenthesis is the constructor
        System.out.println(booty1.getVariable());
        booty1.setVariable("pickles are bad");
        System.out.println(booty1.getVariable());

        //Here is us making another object, but as a Integer this time
        Booty<Integer> booty2 = new Booty<Integer>(45);
        System.out.println(booty2.getVariable());
        booty2.setVariable(10000);
        System.out.println(booty2.getVariable());

        //Example of auto un-boxing happening
        String one = booty1.getVariable();
        int two = booty2.getVariable(); //The right side returns a Integer Object, but the left side is an int primitive. The right side is auto un-boxed to an int.

        booty1 = booty2; //Cannot do this because booty1 and booty2 are two completely different object types
        
        //////////
        //Example of the problems for a non-generics class
        Cat kitty = new Cat(45);//45 is still autoboxed to it's counterpart object, Integer
        Cat kitty2 = new Cat("meow");

        //Now, if we want to set it to a variable, we have to cast manually every time. It can't be auto un-boxed
        int three = (Integer) kitty.getObject();
        String four = (String) kitty2.getObject(); //even kitty2 has to be manually unboxed to it's string literal counterpart

        //We can set the objects equal to each other because the class is of the type Object, so it doesnt know it's setting two incompatible objects to each other
        kitty = kitty2; //Kitty(Integer) is illegally set to Kitty2(String)
        int five = (Integer) kitty.getObject(); //Error happens at compile time because a Integer cannot be casted to a String!!!!
    

java基础知识之泛型简单介绍(代码片段)

1、什么是java泛型?java泛型:英文名称是generics,泛型是jdk5引入的一个新特性,java泛型的本质就是参数化类型,就是所有的操作数据类型被指定为一个参数。对参数化类型进行操作的实体(例如类、接口... 查看详情

java泛型--泛型的简单介绍以及常用情况(代码片段)

一.泛型的基本概念泛型是JavaSE5引入的一个新概念,实现了参数化类型的概念,并且使代码可以应用于多种类型。在日常编写程序时,我们都会很注重“泛化”,像多态其实就是一种类型的泛化,将子类的对象... 查看详情

java基础语法详解java中的泛型(代码片段)

前言:泛型的知识其实在前面Java的泛型和包装类这章介绍过了一些,但那些知识是为后面介绍Java集合框架做的铺垫,而今天这章再配合之前那章,将会完整的介绍Java中的泛型!文章目录1.前章回顾1.1泛型类的... 查看详情

java基础:泛型的具体介绍与使用(代码片段)

...得我的文章不错,记得一键三连,感谢~文章目录泛型一、为什么要有泛型(Generic)1、泛型:标签2、举例:3、泛型的设计背景:4、泛型的概念5、那么为什么要有泛型呢,直接Object不是也可以存储数据吗࿱... 查看详情

java编程:浅析泛型类型中的桥接方法(代码片段)

...、什么是桥接方法在介绍桥接方法之前,我先介绍下泛型。在JDK1.5中引入了泛型,泛型类型是基于原始类型、类型擦除原理进行实现的。原始类型Java总是会自动的为泛型类型提供一个相应的原始类型。所谓原始类型就是... 查看详情

泛型1:介绍及基本使用方式(代码片段)

前言泛型实现了参数化类型的概念;泛型的主要目的之一是用来指定容器要持有什么类型的对象,编译器保证类型的正确性;多态也是一种泛化机制;基本类型无法作为类型参数;一.基本使用方式  泛型基本分为泛型类型和泛型... 查看详情

java:泛型类型使用总结(代码片段)

    泛型是Sun公司发布的JDK5.0中的一个重要特性,它的最大优点是提供了程序的类型安全同可以向后兼容。为了帮助读者更好地理解和使用型,本文通过一些示例从基本原理,重要概念,关键技术,以及相似... 查看详情

初识java集合及包装类和泛型的基本使用(代码片段)

....Collection接口说明2.Collection示例3.Map接口说明4.Map实例三、泛型1.泛型的分类2.泛型的定义3.泛型背后作用时期和背后的简单原理4.泛型的使用5.泛型总结四、包装类1.基本数据类型和包装类直接的对应关系2.包装类的使用,装箱(b 查看详情

java中泛型的深入理解(代码片段)

文章目录泛型深入泛型基本介绍自定义泛型类自定义泛型方法自定义泛型接口泛型通配符和上下限泛型深入泛型基本介绍泛型的概述:泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。泛... 查看详情

go语言之父介绍泛型(代码片段)

...Tleft,right*Tree[T]valueT*...stringTreeTree[string]在上面的例子中,泛型类型Tree存储了类型形参T的值。泛型类型也可以有方法,比如本例中的Lookup。为了使用泛型类型,它必须被实例化;Tree[string]是使用类型实参string来实例化Tree 查看详情

java泛型使用上下边界通配符解决泛型擦除问题(代码片段)

...符示例二、分析字节码的附加信息前言上一篇博客【Java泛型】泛型用法(泛型编译期擦除|上界通配符<?extendsT>|下界通配符<?superT>)一、泛型擦除章节中,讲到了泛型擦除问题,泛型只保留到了编译阶段,运行时就... 查看详情

java泛型探索——介绍篇

1.泛型出现前后代码对比  先来看看泛型出现前,代码是这么写的:Listwords=newArrayList();words.add("Hello");words.add("worlds!");Strings=(String)words.get(0)+(String)words.get(1);System.out.println(s.equals("Helloworlds!") 查看详情

java——泛型(代码片段)

文章目录Java中泛型的概述Java中泛型的语法规则泛型集合泛型方法泛型方法示例(代码演示)小结泛型类泛型类示例(代码演示)小结泛型接口泛型接口示例(代码演示)高级泛型总结Java中泛型的概述泛型... 查看详情

java零基础入门13:java中的泛型(代码片段)

...欢迎点赞👍收藏⭐留言📝目录一、基本介绍二、泛型的优点1、类型安全2、消除强制类型转换3、更高的效率4、潜在的性能收益四、常见泛型字母含义五、使用泛型时的注意事项六、泛型的使用1、泛型类一、基本介绍Java... 查看详情

java遗珠之泛型类型擦除(代码片段)

擦除规则泛型的作用之前已经介绍过了只是用于编译之前更为严格的类型检查,其他的一些特性也都是编译之前的,在编译之后泛型是会被擦除掉的。类型擦除所做的事情如下:如果是无界限的则会把类型参数替换成... 查看详情

java泛型与非泛型java(代码片段)

查看详情

简单介绍-泛型和包装类数据结构(代码片段)

泛型什么是泛型?背景:为了能够写一个类/一个方法,就能够同时支持多种不同类型的对象所谓的泛型,就是从语法层面对Object进行了一个简单的包装,编译过程可以帮我们自动加上一些编译期的类型检查... 查看详情

java泛型(代码片段)

查看详情