java获取泛型class
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
很多朋友都想知道java怎么获取泛型class?下面就一起来了解一下吧~
获取泛型Class的方法
Class类的方法:
public Type getGenericSuperclass()
方法作用:
如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示超类的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅 ParameterizedType 声明。如果此 Class 表示 Object 类、接口、基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示 Object 类的 Class 对象。
ParameterizedType类的方法:
Type[] getActualTypeArguments()
方法作用:返回表示此类型实际类型参数的 Type 对象的数组。
注意,在某些情况下,返回的数组为空。如果此类型表示嵌套在参数化类型中的非参数化类型,则会发生这种情况。
二、获取泛型Class对象
(解析Excel的类代码较多,这里定义几个简单的类记录)
定义获取泛型Class对象的工具类
GenericSuperclassUtil
import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;public class GenericSuperclassUtil {/** 获取泛型类Class对象,不是泛型类则返回null*/public static Class<?> getActualTypeArgument(Class<?> clazz) {Class<?> entitiClass = null;Type genericSuperclass = clazz.getGenericSuperclass();if (genericSuperclass instanceof ParameterizedType) {Type[] actualTypeArguments = ((ParameterizedType) genericSuperclass).getActualTypeArguments();if (actualTypeArguments != null && actualTypeArguments.length > 0) {entitiClass = (Class<?>) actualTypeArguments[0];}}return entitiClass;}}
定义BaseService<E>,用来测试不使用父类时泛型Class的获取
BaseService<E>
public class BaseService<E> {public Class<?> getEntityClass() {return GenericSuperclassUtil.getActualTypeArgument(this.getClass());}}
测试BaseService.getEntityClass()
@Testpublic void testBaseService() {System.out.println(new BaseService<User>().getEntityClass());// 控制台输出:null}
-
苹果手机长图怎么截图,苹果手机截长图的两种方法
1、长截图办法一iOS13上新之后自带的长截图方法,是在我们浏览网页的时候使用的。操作方法:上音量键+开关键一起按下,然后点开截好的图片,选择“整页”截图即可。2、长截图方法二利用QQ实现长截图。操作方法:首先就是需要我们打开QQ,然后试着上音量键+开关键一起按下...
-
省内移动数据流量是指什么
省内移动数据流量是指你的SIM卡所属省份的可用GPRS流量,如果出了你的卡所属的省份,去别的省,那省内移动数据流量就不可以使用,只能使用全国通用流量。移动数据流量有省内流量和全国通用流量,国内流量和省内流量是有所区别的。首先优先度不同:正常情况下,如果用户在自...
-
关于底噪的意思介绍
1、底噪亦称背景噪声,基本所有的好耳机都有底噪,耳机底噪一般都是因为前端的问题,耳机的灵敏度越高对于底噪就越敏感,一些高灵敏度和低阻抗的耳机会把底噪放大,如果加大音量的情况下,底噪会更加的明显。2、检测MP3底噪,一般方法是在夜晚等比较安静的环境中戴上耳机,播...
-
黑色背景拍照窍门详解
1、调整拍摄角度,寻找背景:既然是拍摄黑背景,在拍摄前我们尽量选择深色的背景,这样也就更加容易达到效果。不过深色不一定要是纯黑色,只要颜色较为深沉,偏向暗色调的均可。拍摄前多多观察,寻找不同的拍摄角度,以找到有反差的深色作为背景。要多尝试不同的角度,直至主体...