Java的getClass()
来源:互联网 发布:iphone短信群发软件 编辑:程序博客网 时间:2024/05/24 05:02
我们都知道Class是用来描述类的,在类的内部通过getClass方法得到的结果是当前类的全名。那如果在父类使用getClass,得到的是子类class还是父类class呢?
如下:
package com.hzl.test1;public class TestPrint{ private class Test1{ private Test1(){ System.out.println(this.getClass()); } } public void test(){ new Test1(); } public static void main(String[] args) { TestPrint tp = new TestPrint(); tp.test(); }}输出为:class com.hzl.test1.TestPrint$test1,这是无可厚非。现在添加内部类Test2,让Test2继承Test1,在Test1构造器里输出getClass:
package com.hzl.test1;public class TestPrint{ private class Test1{ private Test1(){ System.out.println(this.getClass()); } } private class Test2 extends Test1{ } public void test(){ new Test2(); } public static void main(String[] args) { TestPrint tp = new TestPrint(); tp.test(); }}
输出:class com.hzl.test1.TestPrint$Test2
发现,此时打印出的是子类的信息。说明this代表的都是当前new的对象。现在将Test1定义为抽象类
package com.hzl.test1;public class TestPrint{ private abstract class Test1{ private Test1(){ System.out.println(this.getClass()); } } private class Test2 extends Test1{ } public void test(){ new Test2(); } public static void main(String[] args) { TestPrint tp = new TestPrint(); tp.test(); }}正常打印:class com.hzl.test1.TestPrint$Test2
所以我们平时在开发时,抽象Dao层的时候,可能会有如下代码段
public abstract class DaoSupportImpl<T> {private Class<T> clazz;public DaoSupportImpl() {ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); // 这才是DaoSupportImplthis.clazz = (Class<T>) pt.getActualTypeArguments()[0]; }
1 0
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- Java的getClass()
- JAVA的getClass()
- java的getClass()函数
- java的getClass()函数
- Java的getClass()
- Java的getClass()
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- java的getClass()函数
- AES —— JAVA中对称加密和解密
- 安卓初学-Fragment之间交换数据
- 深入理解Hadoop集群和网络
- 基础数学知识整理(1)
- c# windows服务 一个进程 多个服务的使用
- Java的getClass()
- ESP8266和msp430g2553的实践项目
- 一个简单的基于数组优先级队列的Java代码
- Android display架构分析
- linux 下编译 memcached
- Discuz/X3.1去掉标题中的Powered by Discuz!以及解决首页标题后的"-"
- 理解Angular中的$apply()以及$digest()
- 【Leetcode】Majority Element
- 图片上传之前预览