当前位置: 首页 > 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.tj-hxxt.cn/news/8334.html

相关文章:

  • 深圳品牌网站设计电话seo关键词优化指南
  • 免费手机建网站平台抖音推广方式有哪些
  • 吉林省建设厅网站市政建设陕西企业网站建设
  • 网站建设意见反馈表网站建站流程
  • 网站设计与网页制作教程药品销售推广方案
  • 网站开发中使用框架吗长春seo排名扣费
  • 网站模板框架seo专员是什么职业
  • 营销型外贸网站建设软件怎样注册自己网站的域名
  • 学校要求做网站如何优化seo关键词
  • 厦门站长优化工具网络广告营销的概念
  • 怎么做网站弹窗通知广东广州疫情最新情况
  • 做设计用哪个素材网站宁波靠谱营销型网站建设
  • 手机端做网站软件seo黑帽是什么
  • 西昌网站建设优化网站价格
  • 如何做网站站长中国2022年重大新闻
  • 定西企业网站制作网上教育培训机构排名
  • 如何做网站建设业务员今日最新财经新闻
  • 建设网站筛选网站供应商百度竞价推广怎么做效果好
  • 公司主页网站开发谷歌三件套
  • 网站建设怎么做账谷歌google play下载
  • 功能性质网站有哪些网站系统推广公司
  • wordpress 导航跳转seo建站网络公司
  • 网站设计形式成人职业技术培训学校
  • b2b网站需要解决哪些问题搜索引擎优化的主要手段
  • 网站突然找不到了 然后降权重 排名不变最新新闻热点话题
  • 网站开发项目工作分解建网站找哪个平台好呢
  • 建设厅网站上报名苏州seo网站优化软件
  • WordPress4中文手册下载seo推广网址
  • 威海专业做网站设计的公司神马移动排名优化
  • 网站套餐到期啥意思搜索引擎优化的技巧有哪些