`

Generic Classes & Reflect

阅读更多
abstract class TestGeneric1 <T extends java.util.List> {
	
	 public String getClassName() {
    	Class clazz = (Class) ((java.lang.reflect.ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
    	 return clazz.getName();
    }
    
    
       public static void main(String[] args) {
    	class TestX extends TestGeneric1 <java.util.ArrayList>{
    		
    	};
    	
    	TestX test = new TestX();
    	System.out.println(test.getClassName());  //output  java.util.ArrayList
    	
    }
    
    
    
    
} 





abstract class TestGeneric2<T> {
 
 public String getClassName() {
   String genericSuperclass = queryGenericSuperclass(getClass()).getGenericSuperclass().toString();
   return genericSuperclass.substring(TestGeneric2.class.getName().length() + 1, genericSuperclass.length() - 1);
 }
 
 private Class queryGenericSuperclass(Class clazz) {
   if (clazz.getGenericSuperclass().toString().startsWith(TestGeneric2.class.getName())) {
     return clazz;
   } else {
     return queryGenericSuperclass(clazz.getSuperclass());
   }
 }
 
 

 
 public static void main(String[] args) throws Exception {
	 class TestX extends TestGeneric2<String> {
	 }
	 
	  TestGeneric2 test = new TestX();
	  System.out.println(test.getClassName()); //output java.lang.String;

 }
 

 
}
3
1
分享到:
评论

相关推荐

    C++ reflect 反射

    本文将深入探讨C++的反射(reflect)特性,并通过一个简单的示例来展示如何实现类对象的方法调用。 反射的核心在于创建一种映射,将编译时的信息(如类型信息)转换为运行时的数据结构,这样就可以在运行时访问这些...

    .NET反编译工具 Reflect

    .NET反编译工具Reflect是一款强大的开发辅助软件,主要用于查看、理解和分析.NET框架下编译的DLL和EXE文件。在软件开发过程中,有时我们需要查看已编译代码的内部实现,或者学习其他开源项目的源码,这时反编译工具...

    JBL Reflect Mini NC用户快速说明书.pdf

    JBL Reflect Mini NC 用户快速说明书 JBL Reflect Mini NC 是一款高级的蓝牙耳机,具有先进的降噪技术和高质量的音频性能。本手册将指导您快速入门使用 JBL Reflect Mini NC,了解其功能和特点。 佩戴和控制 为了...

    kotlin-reflect.jar

    kotlin-reflect.jar

    JBL Reflect Flow用户快速说明书.pdf

    JBL Reflect Flow用户快速说明书.pdf 从给定的文件信息中,我们可以总结出以下知识点: wireless耳机技术 * Bluetooth版本:5.0 * Bluetooth frequency:2.402 GHz – 2.480 GHz * Bluetooth传输功率: * ...

    JBL Reflect Flow用户配置手册.pdf

    JBL Reflect Flow 用户配置手册 本文将围绕 JBL Reflect Flow 耳机的用户配置手册进行详细的知识点总结,涵盖耳机的设计理念、功能特点、技术规格等方面。 一、设计理念 JBL Reflect Flow 耳机的设计理念是为了...

    reflect doc

    在编程领域,`reflect` 是一个非常重要的概念,特别是在诸如 Go、Python 和 Java 等高级语言中。这个概念允许程序在运行时检查自身结构,包括类型、字段和方法,从而实现动态类型检查和元编程。`reflect` 包在 Go ...

    kotlin-reflect-1.3.70.jar

    Could not download kotlin-reflect.jar 这个问题 是墙的原因 没有下载下来kotlin-reflect.jar的jar包资源。 把下载的kotlin-reflect-1.3.70.jar,放在版本文件的子目录中,重新启动电脑就可以。网上都有对应的操作...

    前端项目-reflect-metadata.zip

    在前端开发领域,"Reflect Metadata" 是一个关键的工具,尤其在使用TypeScript或ES6及以上版本时。这个"前端项目-reflect-metadata.zip"包含了实现Metadata Reflection API的Polyfill,这是一个用于JavaScript的元...

    Macrium Reflect 磁盘映像备份工具 免费版

    Macrium Reflect Reflect 是一款让你可以在你的磁盘上创建你的硬盘或者分区的一个精确且可靠的映像的简单易用的软件包。使用该映像你可以在部分或者整个系统丢失的情况下恢复你的整 个磁盘,分区或者个别文件和...

    reflectmetadata的轻量级3KES模块实现

    `reflect-metadata`库在此基础上扩展了几个新的方法,如`Reflect.metadata`、`Reflect.getMetadata`、`Reflect.hasMetadata`等。 `Reflect.metadata`方法用于定义元数据键和值。它接受两个参数:元数据键(通常是...

    scala-reflect-2.11.8-API文档-中英对照版.zip

    赠送jar包:scala-reflect-2.11.8.jar; 赠送原API文档:scala-reflect-2.11.8-javadoc.jar; 赠送源代码:scala-reflect-2.11.8-sources.jar; 赠送Maven依赖信息文件:scala-reflect-2.11.8.pom; 包含翻译后的API...

    xbean-reflect-3.4.jar_macrium reflect

    xbean-reflect-3.4.jar

    cpp-reflect在C17中轻松实现反射和序列化

    而"cpp-reflect在C++17中轻松实现反射和序列化"的主题则探讨了在C++17标准下,如何利用预C++20的手段来实现类似的功能,这对于想要提前尝鲜或者在不支持C++20的编译器环境下工作的人来说非常有价值。 反射通常包括...

    Orm_Reflect_DB

    在“Orm_Reflect_DB”这个项目中,它结合了反射机制来进一步增强ORM的功能。反射是.NET或Java等面向对象语言中的一种特性,允许程序在运行时检查自身的行为和结构。通过反射,可以在运行时动态创建对象、调用方法、...

    android 字体倒影Reflect

    在Android开发中,实现独特的视觉效果是提升用户体验的重要手段之一,"android 字体倒影Reflect"就是一个这样的案例。倒影效果通常用于增加UI的美观度,使得文本在视觉上更吸引人。本教程将深入探讨如何在Android...

    Reflect-Extensions-reflect-extensions-public

    《Reflect Extensions:深入理解Unity中的反射机制》 在Unity游戏引擎开发中,Reflect Extensions是一个强大的工具,它扩展了Unity的内置反射功能,使得开发者能够更加灵活地操控游戏对象和组件,实现动态编程和元...

    kotlin-reflect-1.3.20.jar

    kotlin-reflect-1.3.20.jar

    scrcpy投屏 AssertionError: java.lang.reflect.InvocationTargetExcep

    标题中的问题“scrcpy投屏 AssertionError: java.lang.reflect.InvocationTargetException”是用户在尝试使用Scrcpy时遇到的一个常见错误。这个错误通常意味着在执行某个方法时,Java运行时环境遇到了未预期的情况。...

    Java reflect 机制详解

    免费共享,很详细的介绍了反射机制的原理,适合追根究底的java学习者

Global site tag (gtag.js) - Google Analytics