`
azvf
  • 浏览: 147100 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

父类中获取子类范型类型

 
阅读更多
import java.lang.reflect.ParameterizedType;

public abstract class Base<T> {
	private Class<T> persistentClass;

	@SuppressWarnings("unchecked")
	public Base() {
		// 获取持久化对象的类型
		this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass())
				.getActualTypeArguments()[0];
	}

	public Class<T> getPersistentClass() {
		return persistentClass;
	}

	public void printClazz() {
		System.out.println(persistentClass.getName());
	}
}

 

import java.util.HashSet;
import java.util.Set;

public class BaseSub extends Base<BaseEntity> {
	public static void main(String[] args) {
		Base b = new BaseSub();
		b.printClazz();
		// 初始化只双花括号用法
		Set<String> VALID_CODES = new HashSet<String>() {
			{
				add("XZ13s");
				add("AB21/X");
				add("YYLEX");
				add("AR2D");
			}
		};
	}
}

class Example {
	public static void main(String[] args) {
		// label冒充URL用法
		http: // www.iteye.com
		System.out.println("Hello World!");
	}
}

 

public class BaseEntity {
}

 

2
0
分享到:
评论
1 楼 mthhk 2014-02-14  
顶一发,字数补丁。字数补丁。字数补丁。字数补丁。字数补丁。字数补丁。字数补丁。字数补丁。字数补丁。字数补丁。

相关推荐

    Java如何获取泛型类型

    Java 运行时如何获取泛型参数的类型 Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType 从实现的接口获取泛型参数 定义一个泛型父类: public interface SuperClass { String ...

    looly#hutool-site#泛型类型工具-TypeUtil1

    介绍获取方法的参数和返回值类型(包括Type和Class)获取泛型参数类型(包括对象的泛型参数或集合元素的泛型类型)方法首先我们定义一个类:public cla

    一个很好的范型立例题

    - 泛型类的子类可以有自己的类型参数,但必须是父类类型参数的子类型,例如`class DerivedList&lt;E&gt; extends ArrayList&lt;E&gt;`。 - 泛型方法的重写遵循Java的普通方法重写规则,子类方法必须有相同的类型参数或其子类型...

    C++多范型设计

    在《C++多范型设计》中,作者还探讨了模板与C++其他重要特性的交互,如模板与继承、模板与异常处理、模板与RTTI(运行时类型信息)的关系。书中还特别强调了模板的编译期开销和潜在的代码膨胀问题,以及如何通过技巧...

    jdk1.5中的范型

    ### JDK 1.5 中的范型 #### 引言 自 JDK 1.5 开始,Java 语言正式引入了一项重要的特性——泛型(Generics),这使得 Java 成为了一个更为强大且灵活的语言。泛型允许开发人员编写出类型安全的通用类或方法,从而...

    范型程序设计与 STL.pdf

    例如,C++中的模板(templates)就是实现范型编程的主要手段,它可以创建函数模板和类模板,使代码能够泛化到任意类型。 STL由四个主要组件组成: 1. 容器(Containers):如vector、list、set、map等,它们提供了...

    Java 范型攻略篇

    在使用范型后,`ArrayList&lt;String&gt;`和`Collection&lt;String&gt;`确保了集合中元素的类型一致性,编译器会在编译阶段检查类型安全,阻止了非`String`类型的对象被添加到集合中,从而避免了运行时可能出现的类型转换异常。...

    论文研究-消息传递范型与C/S范型双范型的主数据管理机制 .pdf

    在这范型中,数据通过消息形式在发送者(sender)和接收者(receiver)之间进行交换。消息传递机制的优点在于它的异步性质,能够支持分布式计算环境,并能有效处理网络延迟和中断的情况。 C/S范型是一种常见的软件...

    Java程序设计范型和枚举PPT教案学习.pptx

    在Java中,类型变量(Type Variables)用于表示范型中的未知类型。例如,`T`在`ReadingRoom&lt;T&gt;`中就是一个类型变量。当我们实例化`ReadingRoom`时,如`ReadingRoom&lt;Book&gt;`,我们指定`T`为`Book`类型。此外,我们还...

    《分布式系统原理与范型》.pdf

    除了上述内容,《分布式系统原理与范型》还详细探讨了分布式系统设计过程中可能遇到的一些技术障碍,以及如何克服这些障碍。技术障碍涵盖了诸多方面,例如数据一致性与系统性能之间的权衡、通信开销与系统效率的平衡...

    C++ 多范型设计

    在C++编程语言中,多范型设计是一种强大的技术,它允许程序员编写具有高度灵活性和通用性的代码。这种设计方法可以提高代码的重用性,减少代码量,并且能够适应不同类型的参数。本文将深入探讨C++中的多范型设计,...

    c++多范型设计

    标题中的“C++多范型设计”指的是C++编程语言中的多范型(Multimodality)特性,这是C++的一个关键概念,它允许程序员在不同的抽象级别上编写代码,以适应不同场景的需求。C++的多范型主要包括模板(Templates)、...

    实验六,集合与范型.zip

    例如,`void copy(List&lt;? extends Number&gt; source, List&lt;? super Integer&gt; dest)`,这个方法可以从源列表(源列表中的元素是Number或其子类)复制元素到目标列表(目标列表可以接受Integer或其父类)。 4. 类型擦除...

    面向对象的变成范型分析

    继承则是面向对象编程中的一个重要机制,允许一个类(子类)继承另一个类(父类)的特性,从而减少了代码重复并实现了代码的扩展性。但是,继承也带来了一些问题,如脆弱的继承问题,即对父类的修改可能会影响到所有...

    分布式系统原理与范型

    《分布式系统原理与范型》是分布式系统中的经典教材,全书分为两部分:原理和范型。第一部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了...

    分布式系统原理与范型(第二版)

    分布式系统原理与范型是IT领域中至关重要的一个主题,特别是在云计算、大数据处理以及现代互联网服务的背景下,理解和掌握分布式系统的概念与实践至关重要。本书作为第二版,深度探讨了这一领域的核心理论和常见模式...

Global site tag (gtag.js) - Google Analytics