- 浏览: 1437140 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
1、泛型类
public class Function { private Long id = new Long(0); public Long getId() { return id; } public void setId(Long id) { this.id = id; } }
2、定义基类,包含泛型类型
public abstract class Father<T> { private Class<T> entityClass; private T model; public abstract void say(); /** * 获取父类的泛型类 */ public Class<T> getEntityClass() { Class clazz = getClass(); //得到当前类 Type genericType = clazz.getGenericSuperclass(); //返回当前类的父类的Type,包含泛型参数信息 if(genericType instanceof ParameterizedType){ Type[] params = ((ParameterizedType)genericType).getActualTypeArguments(); //得到父类的泛型参数信息 if(params!=null && params.length>0){ entityClass = (Class)params[0]; } } return entityClass; } public T getModel() { Class<T> clazz = getEntityClass(); if(clazz!=null){ try{ model = clazz.newInstance(); //泛型类的实例 }catch (InstantiationException e){ e.printStackTrace(); }catch (IllegalAccessException e){ e.printStackTrace(); } } return model; } }
3、继承基类,传入具体的泛型类
public class Son extends Father<Function> { @Override public void say() { String name = null; if(getEntityClass()!=null) name = getEntityClass().getName(); System.out.println(name); Function func = (Function)getModel(); if(func!=null){ System.out.println(func.getId()); } } public static void main(String[] args) { Son fa = new Son(); fa.say(); } }
发表评论
-
keytool的使用
2019-08-28 15:12 498keytool是密钥和数字证书的管理工具。它使用户能够管理 ... -
Bitset数据结构的使用
2019-03-08 13:53 1879Bitset是Java中的一种数据结构。Bitset中主要 ... -
Disruptor:高性能低延迟的内存有界队列框架
2019-02-24 10:45 945Disruptor是用于在多个线程之间通信的高性能低延时的 ... -
java的类加载机制
2019-02-18 21:37 385ClassLoader的双亲委派模 ... -
ThreadLocal的使用范例
2019-02-16 19:30 519ThreadLocal用于保存某个线程的共享变量。 Thr ... -
反射工具包Reflections的使用
2019-02-16 17:51 3047Reflections 通过扫描 classpath,索引元 ... -
使用CGLIB对实现类进行动态代理
2019-01-31 19:12 2415CGLIB(Code Generation Library ... -
基于JDK动态代理实现Mybatis的Mapper功能
2019-01-31 18:40 910Mybatis通过定义Mapper接口类,类中的方法与map ... -
Java8新特性
2019-01-20 22:04 5291、Lambda表达式 ... -
使用百度API识别图片文字
2018-09-21 22:41 24911、注册百度账号 https://login.bce.b ... -
HanLP自然语言处理包的使用
2018-09-16 23:06 3086HanLP是由一系列模型与算法组成的Java工具包,目标是 ... -
org.apache.commons常用类的使用
2018-09-14 23:29 813/** * 文本相似度计算 */ ... -
图片转换为单色
2017-04-01 00:10 1451/** * 转为单色图片 */ privat ... -
Java事件机制范例
2016-11-28 15:22 2486java事件机制的参与者: event object:事件 ... -
编程方式的quartz2例子
2016-11-09 14:53 670Job类: public class MyJob imp ... -
数字证书格式
2016-11-06 20:44 1960PFX 或 P12 指以pkcs#12 ... -
Drools6使用范例
2016-10-15 23:50 28001、创建kmodule.xml文件 在s ... -
生成带logo的二维码图片
2016-05-25 18:21 1367源码如下: private static final in ... -
用HttpClient访问CXF的RESTful接口
2016-05-18 16:50 4442用CXF可以开发RESTful服务,服务接口的输入和输出支持 ... -
commons-configuration使用范例
2016-05-02 23:50 15301、访问属性文件 PropertiesConfigurat ...
相关推荐
综上所述,虽然Java泛型在编译后会进行类型擦除,但通过上述技巧,我们仍然能够在运行时获得关于泛型类实例化类型的一些信息。在实际开发中,这些方法可以帮助我们编写更加灵活和安全的代码。在示例文件`GenericRTTI...
在这个“TypeScript泛型类 - 把类作为参数类型的泛型类”示例中,我们将深入探讨如何利用泛型在TypeScript中创建灵活的、可复用的类模板。 泛型是TypeScript中的一个核心概念,它允许我们在编写代码时定义和重用...
#### 泛型类与泛型方法 1. **泛型类**: - 泛型类是在定义类时声明一个或多个类型参数。例如,定义一个简单的泛型类`Box<T>`,其中`T`是类型参数。 ```java public class Box<T> { private T item; public ...
上述代码定义了一个名为`ItemList<T>`的泛型类,它可以存储任何类型的对象,并提供了添加和获取对象的方法。这种自定义泛型类可以根据具体的业务需求灵活扩展功能。 通过以上分析,我们可以看出泛型和泛型集合类在...
JDK1.5引入的泛型技术极大地增强了Java语言的灵活性和安全性,通过参数化类型、泛型类和泛型算法,开发者可以编写更加通用且类型安全的代码。理解和熟练掌握泛型的使用,对于提高Java开发者的编程技能和软件质量有着...
dao接口 : PersonDAO extends GenericDao, Integer> 可以不写代码,方法已经在父类泛型dao里了,这里为了说明:可扩展添加 findByNameExact()方法 子类的附加方法。 泛型daoimpl :GenericDaoImpl, ID extends ...
Java泛型也支持继承关系,允许我们声明泛型类或方法时限定类型参数必须继承自某个特定类型或实现某个接口。 ```java public class MyList<T extends Comparable<T>> { // ... } ``` 这种做法使得`MyList`类只能...
在实例化泛型类或调用泛型方法时,我们可以指定具体的类型,从而得到一个特定类型的实例。例如,C#中的`List<T>`就是一个常见的泛型集合类,它可以容纳任何类型的数据。 泛型的优势在于: 1. **类型安全**:使用...
* 工具类:泛型可以用于工具类中,例如工具类的静态方法可以使用泛型。 五、结论 泛型是Java编程语言中的一种重要特性,它可以提高代码的灵活性和可读性。通过使用泛型,我们可以编写更加灵活和可维护的代码。此外...
这里,`MyGenericClass<>`是我们的泛型类,`string`是我们的类型参数。`CreateInstance`会返回`MyGenericClass<string>`类型的实例。 在提供的压缩包文件`MakeGenericTypeTest`中,可能包含了一个小型的演示项目,...
除了泛型类,还可以在非泛型类中定义泛型方法。例如,`SwapValues(ref T a, ref T b)`可以交换两个变量的值,无论它们是什么类型。 6. **泛型接口**: 泛型接口允许我们定义一组操作,而不指定具体类型。例如,`...
总之,“泛型实现小例”主要涉及Java编程中的泛型使用,包括在类、接口和方法中定义类型参数,以及如何通过泛型提高代码的安全性和可读性。通过理解和熟练运用泛型,我们可以编写出更加高效且易于维护的Java代码。
在实例化泛型类时,可以使用尖括号`<>`来指定类型参数。例如,`Stack<int>`表示一个只接受整型数据的栈,`Stack<string>`则表示一个只接受字符串的栈。在使用泛型方法时,类型参数可以是方法签名的一部分,例如`void...
Java 1.5 泛型是Java编程语言中的一项重要特性,它于2004...通过深入理解泛型的各个方面,包括类型参数、泛型类和方法、边界限制、通配符、类型擦除以及泛型与多态的结合,开发者可以编写出更加高效且易于理解的代码。
它是定义泛型类、结构、接口或方法时所使用的未知类型,用于表示泛型的通用性。 #### 构造泛型类型(构造类型) 构造泛型类型是指通过为泛型类型参数指定具体类型而得到的实际类型。例如,如果你有一个泛型类`List...
因此,虽然在编译期间我们能获得类型检查的好处,但在运行时,泛型接口和类的行为与无参数类型版本基本相同。 5. **通配符** 在某些情况下,我们可能不关心类型参数的具体类型,而只关心它是某个类的子类或者实现...
例如,如果泛型类中的方法接受或返回泛型类型,那么应该考虑使用类型参数来定义这些方法,以保持类型安全性。 7. 通配符的使用场景: 通配符在读取时使用非常方便,因为读者不需要关心具体的类型。但在写入时就有...
泛型方法与泛型类类似,只是类型参数定义在方法级别。这使得我们可以在单个类中创建多种方法,每种方法处理不同类型的参数。下面是一个示例: ```java public static <T> void printList(List<T> list) { for (T ...
### Java泛型的重要使用方法 #### 一、引言与背景 在软件开发过程中,我们经常需要编写可重用的代码来处理不同类型的对象。例如,假设我们需要创建一个`MyArrayList`类,它可以用来存储一系列的数据,并提供添加和...