java泛型场景补充

前言

本文不是对泛型的系统介绍,也不打算对其进行入门讲解,只是对遇到的一些泛型场景的补充。看过宋红康和韩顺平的javase课程可以花几分钟看看。

1.&符号在泛型中的使用,用来描述有边界的受约束泛型

java 复制代码
class A{}
interface B{}
public class C< T extends A & B>{}

这里的泛型类型受到约束,既要是A的子类,也要实现B的接口。注意虽然B是接口但是泛型仍要用关键字extends,并且写在A的右边。

2.泛型方法中的泛型参数在方法被调用时确定。常见形参位置带有泛型,然后根据传入实参确定,不再详叙。还有一种少见的情况是根据引用类型来确定的,需要注意。

java 复制代码
public class Testing {
//
	public <T> T generic(){
        String s1 = "generic";
        return (T)s1;
    }
	
	@Test
    public void test2(){
        ReflectionTest r1 = new ReflectionTest();
        String s1 = r1.generic();
        Sort s2 = r1.generic();

    }
}

这里强转成什么类型是由String s1或Sort s2决定的,此时才决定泛型类型。

返回值本身是String类,所以第一次调用不报错,第二次调用报错。

3.泛型通配符的读写情况

待更新

相关推荐
霸道流氓气质6 分钟前
Saga模式入门与实战:编排与协同模式、补偿设计原则与Java生产级实现
java·开发语言
江湖有缘12 分钟前
Docker实战 | 使用Docker部署Readeck书签管理工具
java·docker·eureka
小毛驴85015 分钟前
mvn help:effective-settings 与 mvn help:effective-pom
java·linux·前端
silvamux_28 分钟前
OpenAI Python SDK v1 迁移实战
开发语言·python
silvamux_28 分钟前
MiniMax API 调用教程:兼容 OpenAI 写法
java·数据库·elasticsearch
旋生万物29 分钟前
螺旋数不是玄学:Python 实现广义复数与等角螺线
开发语言·人工智能·python·云原生·aigc·软件工程·后端开发
半杯咖啡半行码30 分钟前
Linux字符设备驱动实战:ioctl接口与GPIO操作指南
linux·开发语言
ZoeLandia31 分钟前
TypeScript 07:工程化——import type、声明文件与 tsconfig
开发语言·前端·typescript
染指111033 分钟前
145.Agent-LangGraph基础概念和安装和简单代码示例
java·服务器·数据库·langchain·agents
Doker 多克35 分钟前
ForkJoinPool 详解
java·多线程