获取父类的泛型类型

import java.lang.reflect.ParameterizedType;

public class GenericClass {

	/**
	 * 获取父类的泛型类型
	 */
	public static Class getGenericClass(Class clazz) {
		ParameterizedType  type=(ParameterizedType)clazz.getGenericSuperclass();
		Class entityClass=(Class) type.getActualTypeArguments()[0];
		return entityClass;
	}

}

基类都可以用到

时间: 2024-10-12 02:41:55

获取父类的泛型类型的相关文章

python获取父类的子类(遍历,递归),并循环执行所有子类的某一方法

前言 换了新工作,踏足于python语言的开发,也把自己的学习过程记录下来. 一,递归获取某一父类的所有子类 all_subclasses = {'0': '0'} def get_all_classes(model): """ 获取父类的所有子类 """ for subclass in model.__subclasses__(): # print(subclass._meta.abstract) if (not (subclass.__nam

JDK获取父类的方法

import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Student extends Person<Student> { public static void main(String[] args) { Student st=new Student(); Class clazz=st.getClass(); //getSuperclass()获得该类的父类 System.o

java中为什么不能通过getClass().getName()获取父类的类名

例如: class A{} public class B extends A{ public void test(){ System.out.println(super.getClass().getName()); } publis static void main(String[] args){ new B().test(); //得到的输出结果为B,而不是A //可以通过this.getClass.getSuperclass().getName()获取父类类名(java的反射机制) } }

子类用一个名为subitems的数组属性保存父类对象,为什么不能获取父类对象的信息呢???在main函数中subitems为空,不知道为什么。

main.m如下 1 #import <Foundation/Foundation.h> 2 #import "BNRContainer.h" 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 6 //创建一个NSMutableArray对象,并用items变量保存该对象的地址 7 BNRContainer *items = [[BNRContainer alloc] init]; 8 fo

TypeToken获取运行时泛型类型

最近正好使用到了guava的TypeToken来获取泛型类型 使用方法: return new TypeToken<T>(thisClass) {}.getRawType(); 网上冲了一浪,发现关于泛型,有前人给出的总结: Java泛型有这么一种规律: 位于声明一侧的,源码里写了什么到运行时就能看到什么: 位于使用一侧的,源码里写什么到运行时都没了. 正好印证了TypeToken的实现思路: 先创建一个TypeToken<T>的匿名继承类(属于类的申明),从而 getClass(

获取父类的私有变量

开始时调用了方法 object_getInstanceVariable(id obj, const char *name, void**outValue),使用该方法确实可以获取到另一个类私有变量的值,但是只能在非ARC环境中使用(配置方法:点击 工程名->Build Settings->搜索Automatic Reference Counting),我的工程是ARC的,肯定不行,于是我继续找方法. 于是我找到了这个方法 class_getInstanceVariable(Class cls,

获取在接口或者类上定义的泛型类型

通过Class类上的 getGenericSuperclass() 或者 getGenericInterfaces() 获取父类或者接口的类型,然后通过ParameterizedType.getActualTypeArguments() 可以得到定义在类或者接口上的泛型类型,具体参考如下代码: package com.jiaoyiping.event; /* * Created with Intellij IDEA * USER: 焦一平 * Mail: [email protected] *

Java 获取对象全部属性 包括 父类属性

今天由于业务需要,看一段数据库中的表转化成用户可以看懂的数据,也就是把一些字段比如Date用ms存的,转化为'yyyy-MM-dd'这种格式,但是由于字段太多,所以利用Java反射机制自带的BeanUtils相关的方法来进行转化(要求两个类的属性名称相同),当然这个方法只支持基本数据类型,如Long,Integer,String,Short之类的转化,但是像Date类型就需要自己手动判断来转,这就出现了今天所遇到的坑 先看下反射机制是如何获取类的方法的: Class clazz = object

180530-反射获取泛型类的实际参数

文章链接:https://liuyueyi.github.io/hexblog/2018/05/30/180530-通过反射获取泛型类的实际参数/ 反射获取泛型类的实际参数 泛型用得还是比较多的,那么如何获取泛型类上实际的参数类型呢? 比如一个接口为 public interface IBolt<T, K> { } 现在给一个IBolt的具体实现类,可以获取到实际的参数类型么?下面几种case可以怎么获取实际的IBolt中的T和K类型呢? // 实现接口方式 public class ABol