当前位置: 首页 > news >正文

做炭化料的网站wordpress网页版

做炭化料的网站,wordpress网页版,公司简介怎么写吸引人,用ps做网站还是wd1.官方API对这两个方法的介绍 getSuperclass : 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。如果此 Class 表示 Object 类、一个接口、一个基本类型或 void,则返回 null。如果此对象表示一个数组类&#xff…

1.官方API对这两个方法的介绍 

getSuperclass :
返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。如果此 Class 表示 Object 类、一个接口、一个基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示该 Object 类的 Class 对象。
getGenericSuperclass :
返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的Type。如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示超类的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅 ParameterizedType 声明。如果此 Class 表示 Object 类、接口、基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示 Object 类的 Class 对象。

2.二者异同点

两个方法都是获取超类的类型,看一个例子:

打印结果 :

 

这两者都能获取父类的类型,但是如果我们换成下面形式,我们就可以找到两个方法差别。

 

上面的方法, 我们使用 ”getGenericSuperclass()” 方法获取父类的类型, 然后重新读一遍该方法的说明 “如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数 ”。 也就是这种方式可以获取超类的参数类型, 也就是泛型中的”Integer”类型。
但是如果上面方法我们使用 ”getSuperclass()“ 方法就会出现类型转换错误 ”java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType”。

再举一个例子
父类:

package com.itheima.mytest;public class Person<T1, T2> {}

子类:

package com.itheima.mytest;import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;public class Student extends Person<Integer, String> {@SuppressWarnings("rawtypes")public static void main(String[] args) {Student student = new Student();// getClass() 获得该类的类类型(即类型变量)Class clazz = student.getClass();// getSuperclass() 获得该类的父类System.out.println(clazz.getSuperclass());// getGenericSuperclass() 获得该类带有泛型的父类Type type = clazz.getGenericSuperclass();System.out.println(type);// Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。// ParameterizedType 参数化类型,即泛型// 将Type转化为参数化类型(即泛型)ParameterizedType p = (ParameterizedType) type;// getActualTypeArguments() 获取参数化类型的数组,泛型可能有多个Type[] actualTypeArguments = p.getActualTypeArguments();// 将Type转化为类型变量(即Class)Class c1 = (Class) actualTypeArguments[0];Class c2 = (Class) actualTypeArguments[1];System.out.println(c1);System.out.println(c2);}
}

 运行结果

class com.itheima.mytest.Person
com.itheima.mytest.Person<java.lang.Integer, java.lang.String>
class java.lang.Integer
class java.lang.String

3. 实际应用

记得以前使用hibernate时候, 我们会为所有Dao创建一个BaseDao, 将一般的增删改查操作抽取到BaseDao中。
下面就是一个例子 : 

我们将增删改查一般操作放在BaseDao中, 但是在”查”过程中, 遇到问题。当使用Hibernate拼写HQL时候, 查一张表需要知道这张表对应的对象的名称 . 比如”t_user”对应”User” . 那么在HQL中需要使用”User”。

在上面构造方法中,父类BaseDao中获取子类操作类型对象 (UserDao操作User, DepartmentDao操作Department),利用泛型然后使用反射里的 ”getGenericSuperclass” 方法, 就可以获取到对应的类型 ,进而获取对应的className 。

http://www.yayakq.cn/news/745694/

相关文章:

  • 微信做引流网站网站策划书案例展示
  • 网站公司不给ftp网站备案号是什么
  • 中英文网站建设 大概要多久呼和浩特网站制作 建设
  • 广州网站制作建设个人免费网站怎么建设
  • 网站响应式设计wordpress love
  • 做下载网站赚钱线上营销怎么推广
  • 网站名称需要备案吗网站图片上怎么做弹幕效果
  • 第二章 网站建设公司注册资金100万是什么意思
  • 武进网站建设信息网站容量
  • 上海市建设工程安全生产协会网站哪个网站可以做一对一老师
  • 广州做网站wordpress与商城
  • 秦皇岛网站团队wordpress积分券
  • 家装类设计网站开发公司工程队营销的支持
  • wordpress 科技企业主题安徽seo网站推广
  • 济南建设网站 概况佛山微网站建设哪家专业
  • 欧美风格网站源码建设部二级结构工程师注销网站
  • 大连网站开发师带搜索网站建设视频教程
  • 玄武模板网站制作报价电子商务网站的设计
  • 太仓市建设局网站wordpress支付代码
  • 单位网站建设和维护wordpress实现单点登录
  • 辽宁响应式网站建设推荐a96中华室内设计网
  • html编辑器文字居中win10系统优化软件哪个好
  • 做论坛网站前段用什么框架好点设计制作生态瓶教学视频
  • 基于用户体验的网站设计厦门三五互联可以做网站吗
  • 网站 弹出修改wordpress页脚信息
  • asp.net 网站授权磁力吧最佳搜索引擎
  • 网站建设 协议书 doc外贸入门基本知识
  • 电影网站怎么做推广ui设计培训一般多少钱
  • 加强社区网站建设建设工程合同补充协议范本
  • 网站网页区别是什么意思网站建设与管理属于计算机专业吗