首页 > 其他分享 >在构造方法里获取当前类的泛型

在构造方法里获取当前类的泛型

时间:2024-07-04 14:42:01浏览次数:19  
标签:getActualTypeArguments 构造方法 clazz MyStringClass 获取 泛型 MyClass parameterizedType 

定义

public class MyClass<T> {

    private Class<T> clazz;

    public MyClass() {
        Type type = this.getClass().getGenericSuperclass();
        if (type instanceof ParameterizedType parameterizedType) {
            if (parameterizedType.getActualTypeArguments() != null && parameterizedType.getActualTypeArguments().length > 0) {
                this.clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
            }
        }
    }

    public String getGenericTypeName() {
        return this.clazz.getName();
    }

}

子类

public class MyStringClass extends MyClass<String> {
}

验证

    @Test
    void test() {
        MyStringClass myClass = new MyStringClass();
        System.out.println(myClass.getGenericTypeName());
    }

输出:java.lang.String

标签:getActualTypeArguments,构造方法,clazz,MyStringClass,获取,泛型,MyClass,parameterizedType,
From: https://www.cnblogs.com/jiayuan2006/p/18283827

相关文章

  • 【鸿蒙性能优化】基于Camera Kit,获取相机流数据传递给native,进行压缩编码
    示例场景:ATS侧启动相机,使用摄像头采集视频流数据,获取相机视频流数据传递到native侧,通过buffer模式将视频编码成MP4文件保存到沙箱路径。方案描述:具体实现步骤可分为:Step1:申请权限,启动相机。Step2:启动录制,获取视频流数据,获取一帧图像转成JPG格式保存到沙箱路径。Step3:......
  • 获取中文日期
    在开发过程中,有时会需要获取全中文格式的日期,比如:二〇二四年七月三日。此时就需要将日期转换成该格式,Hutool封装了该工具:/***格式化为中文日期格式,如果isUppercase为false,则返回类似:2018年10月24日,否则返回二〇一八年十月二十四日**@paramdate被格式化的日期......
  • SQL获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。描述有一个员工表employees简况如下:有一个薪水表salaries简况如下:......
  • 一键获取:Win11笔记本系统下载地址!
    在笔记本电脑操作中,用户想安装一款适合笔记本电脑使用的Win11系统,但不知道在哪里可以下载到?接下来系统之家小编给大家分享Win11笔记本系统下载地址,有需要的小伙伴一键点击即可获取,快速安装系统,即可体验系统的功能。推荐一:联想LenovoWindows1123H264位专业版......
  • unity 从list中获取最近的坐标 / 获取最接近的角度(数值)
    ///<summary>///从列表points中获取距离targetPoint最近的坐标///</summary>///<paramname="points"></param>///<paramname="targetPoint"></param>///<returns><......
  • Golang面试:泛型
    Go语言在1.18版本中引入了泛型(Generics),这是Go语言发展中的一个重要里程碑。泛型允许你编写更通用和可复用的代码,而无需牺牲类型安全性。以下是对Go中泛型的详细介绍,包括其语法、使用场景和示例代码。1.泛型的基本概念泛型允许你定义可以处理多种数据类型的函数和数据结构,而无需......
  • 获取当前运行的终端大小
    方法shutil模块有一个方法.get_terminal_size,通过这个方法可以获取到当前运行的终端大小。比如:>>>importshutil>>>shutil.get_terminal_size()os.terminal_size(columns=195,lines=52)>>>shutil.get_terminal_size().columns195将终端窗口缩小再次运行,会得到对......
  • 使用qt 获取一张网络图片,并将这张图片显示在qml 上
    #include<QGuiApplication>#include<QQmlApplicationEngine>#include<QNetworkAccessManager>#include<QNetworkReply>#include<QUrl>#include<QImage>#include<QQuickImageProvider>classImageProvider:publicQQuickI......
  • 课前准备---HD数据结合图像识别获取真实的空间单细胞级数据
    作者,EvilGeniusHD数据不同于Xenium,目前还是横屏竖直的一刀切数据分析模式,但是真实的细胞绝对不是如此分布的,那么实际分析中,2um的精度配合图像的信息,获取真实的细胞分布数据,就成了分析的必须。多说一句,分析的准确性和超前化也是公司对核心分析人员的核心要求。如下如,我们最......
  • thinkphp6 使用FFMpeg获取视频信息
    1.本地安装 FFMpeg,官网下载地址:https://ffmpeg.org/download.html#build-windows  解压后,把文件夹放到自定义目录,添加系统变量 2.安装依赖,composer.json添加"php-ffmpeg/php-ffmpeg":"^0.19.0",3.封装class类<?phpnamespaceapp\api\controller;useFFMpeg......