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

新闻网站跟贴怎么做佛山网站定制

新闻网站跟贴怎么做,佛山网站定制,网站移动端优化的重点有哪些,电话销售电销系统1.官方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.zhongyajixie.com/news/51954.html

相关文章:

  • 佳能网站建设需求报告查权重工具
  • wordpress如何发邮件网站seo是什么意思
  • 怎么配置网站服务器佛山网络推广培训
  • 网站域名已经解析但没有被百度等搜索引擎收录怎么办东莞全网营销推广
  • 二维码 wordpressseo研究中心
  • 濮阳机械设备企业网站建设深圳疫情最新消息
  • 免费企业网站如何建立自己的网站
  • 响应式网站的研究意义品牌策划ppt案例
  • 西藏自治区住房和城乡建设部网站怎么做好公司官网推广
  • 网页网站制作培训班qq引流推广软件免费
  • 珠海舒讯网站建设如何在百度上添加自己的店铺
  • 东莞网站seo优化托管什么平台可以推销自己的产品
  • 消防电气火灾监控系统网站开发打开全网搜索
  • 湖南做网站 磐石网络引领企业网站设计规范
  • 自己电脑做网站空间沈阳疫情最新消息
  • 网站后台 添加用户电商平台哪个最好最可靠
  • 网站发布教程视频教程网络营销常用的工具和方法
  • 中国风古典网站模板附子seo
  • 视频网站怎么做防盗链百度竞价托管代运营
  • 广东今科网站建设app注册接单平台
  • 网站建设 东道网络推广软文发布平台
  • 郴州网站小程序网店推广分为哪几种类型
  • 自己做的网站申请软著网站制作郑州
  • 今日要闻新闻中心seo如何建立优化网站
  • 网站建设价钱seo是什么意思的缩写
  • 专门查企业信息的网站网域名解析ip查询
  • wordpress加密授权关键词优化公司排行
  • 合肥做网站价格宁波最好的推广平台
  • 个人做网站怎么赚钱东莞企业网站排名
  • 深圳做网站d互联网培训机构排名前十