首页 > 编程语言 >java的泛型

java的泛型

时间:2023-06-05 14:44:28浏览次数:36  
标签:java String Person 数据类型 类型 泛型 public

泛型:

  表示数据类型(这种数据类型是引用类型)的一种类型。如int a = 1;变量a为1。类比得 E = String,E表示泛型,他可以表示所有的数据类型,这里这个泛型表示String类型

  1. 泛型又称参数化类型,解决数据类型的安全性问题

  2. 在类声明或实例化时指定好需要的类型即可(即传入实参)

  3. 泛型的作用:可以在类声明时通过一个标识表示类中的某个属性类型,或某个方法的返回值类型,或参数类型

public class Generic{
    public static void main(String[] args){
        //注意:E的具体类型是在编译期间确定的,这里泛型E的类型表示Srting类型
        Person<String> person = new Person<String>("zhangsan");
    }
}

class Person<E>{
    E s; //某个属性类型
    public Person(E s){//参数类型
        this.s = s;
    }
    public E f(){//某个方法的返回值类型
        return s;
    }    
    void show(){
        System.out.println(s.getclass());//这个看E的实际类型(运行类型)
    }
}

泛型的声明:

  class 类名<E,K,M>{}和interface 接口名<T,V>{}

    E,K,M,T,V表示泛型,只能表示引用类型,任意字母都行。一般在一个对象实例化就能指定泛型表示的具体类型了

    在指定泛型的具体类型后,可以传入该类型或该类型的子类型

泛型的使用形式:

  Person<String> person = new Person<String>("zhangsan");

  也可以为:Person<String> person = new Person<>("zhangsan");后面的<>中的类型会自动推导,推荐使用第二种

 

标签:java,String,Person,数据类型,类型,泛型,public
From: https://www.cnblogs.com/zj-studyrecoding/p/17457721.html

相关文章

  • Java建造者模式,用代码体验LEGO的快乐
    前言本文主要讲述Java设计模式中的建造者模式,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。一.什么是建造者模式建造者模式是23种设计模式中创建型模式的一种,它关注的是对象创建的步骤,将一个复杂的对象抽象出来,一步步地把一个复杂的对象创建出来。......
  • 浏览器请求转换成Postman和postman请求转Java/JS.等后端代码
     unirest为例:<!--与postman非常友好的RPC框架--><dependency><groupId>com.konghq</groupId><artifactId>unirest-java</artifactId><version>3.5.00</version></depend......
  • Java集合List转树结构工具类-函数版
    工具类:packagecom.example.mindsa.util.tree;importcom.baomidou.mybatisplus.core.toolkit.support.SFunction;importlombok.SneakyThrows;importjava.lang.invoke.SerializedLambda;importjava.lang.reflect.Method;importjava.util.List;importjava.util.func......
  • Java反射获取不到注解
    在CGlib动态代理的情况下method.getAnnotation(PostMapping.class);这样是获取不到注解的.需要用Spring自带的工具类来获取:AnnotationUtils.findAnnotation(method,PostMapping.class);......
  • Java模拟表单提交编码不同导致乱码问题解决
    最近有个业务需要模拟表单提交到asp页面中,但是我的项目编码是UTF8,而asp页面是GB2312,中文字段提交后,到达数据库后是乱码.问题的解决在于模拟提交的时候指定编码:我用的HTTP框架是Unirest,代码如下:......
  • java 图形学 点和闭合区域位置关系判断
    判断一个点是否在一个特定的区域内或外,通常需要你具备区域的数学表达(例如,方程、不等式等)以及要判断的点的坐标。例如,如果你有一个圆的方程(x-h)²+(y-k)²=r²,其中(h,k)是圆心,r是半径,你要判断点(a,b)是否在此圆内或外。你可以将点(a,b)的坐标带入这个方程:如果(a......
  • JavaScript 递归的简单例子
     typescript+vue3functionflattenTree(tree:any,result:any){tree.forEach((node:any)=>{result.push({id:node.id,cat_name:node.cat_name,cat_name_en:node.cat_name_en});if(node.child.length>0){flattenTree(node.child,r......
  • Java的先行发生原则
    先行发生原则(Happens-Before)是Java内存模型定义的一个等效判断原则。依赖这个原则,我们可以通过几条简单规则判断数据是否存在竞争,线程是否安全,而不需要陷入Java内存模型苦涩难懂的定义之中。“先行发生”原则指的是什么。比如说操作A先行发生于操作B,其实就是说在操作B发生......
  • java 内存模型
    java内存模型(memorymodel)定义了java虚拟机如何与计算机内存交互。JVM将内存主要分为栈(stack)内存和堆(heap)内存。每当我们声明新的变量和对象、调用新的方法、声明String或执行类似的操作时,JVM都会从堆栈内存或堆空间为这些操作指定内存。每个线程有自己的栈内存,是线程独有的。堆......
  • java 自己写分页
    longcurrent=1;longsize=100;StringcurrentOther=jsonObject.getStr("current");if(StrUtil.isNotBlank(currentOther)){//?:0或1个,*:0或多个,+:1或多个BooleanstrResult1=currentOther.matches("^[-\\+]?([0-9]+\\.?)?[0-9]+$");if......