第一:泛型:问题:1.在运算时候必须要向下转型。向下转型存在安全问题(可能会把某个子类落下)2.如果子类比较多,程序显得比较臃肿。因此出现泛型,在jdk1.5以后出现的
第二:泛型好处:将数据类型参数化。
第三:泛型的实现
1.泛型类:(1).定义泛型:class 类名<T> (2).使用泛型:在创建对象的时候将泛型具体化,如果不具体化就默认为object类型
2.泛型接口:(1).interfance 接口名<T> (2).在子类实现接口的时候,如果不指定具体的泛型类型,该子类也是泛型类。
3.泛型方法:(1).public T 方法名(T,X) (参数类型是泛型,返回值类型是泛型)泛型参数可以多个
第四:上下限:?是通配符,可以接受任意类型。Number;类的子类是int,double,long,short,float等,起码是个数字。
限定上限:? extends Fu 父类和父类的子类能用
限定下限:? super Zi 子类和子类的父类能用
第五:代码实现
public class Circle<T> {
private T x;
private T y;
private T r;
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public T getY() {
return y;
}
public void setY(T y) {
this.y = y;
}
public T getR() {
return r;
}
public void setR(T r) {
this.r = r;
}
public Circle() {
super();
// TODO Auto-generated constructor stub
}
public Circle(T x, T y, T r) {
super();
this.x = x;
this.y = y;
this.r = r;
}
@Override
public String toString() {
return "Circle [x=" + x + ", y=" + y + ", r=" + r + "]";
}
}
public class CircleTest {
public static void main(String[] args) {
Circle c=new Circle(12,5,8.5);
System.out.println(area(c));
}
public static Number area(Circle<? extends Number> c){
return 3.14*c.getR().intValue()*c.getR().intValue();
}
}
相关推荐
泛型类、泛型方法、泛型接口、泛型委托 泛型类、泛型方法、泛型接口、泛型委托
Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...
反射和泛型是一种重要的解决途径。 此代码是一个生成泛型对象的类。 比如: Pool<Point> pool = new Pool(){}; Point p = pool.get(x, y); //在此构造Point对象 ... pool.put(p); 希望能帮助那些为查找泛型构造器、...
在.NET FCL为我们提供了很多...结论:如果在C#2.0版本以上,尽量使用泛型集合类,而不使用非泛型集合类。因为,1. 泛型编程是从c#2.0开始才被.net支持的。2.泛型集合在性能和类型安全方面优于非泛型集 合。 。。。。
【Flutter】Dart 泛型 ( 泛型类 | 泛型方法 | 特定类型约束的泛型 ) https://hanshuliang.blog.csdn.net/article/details/114059611 博客源码快照
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
泛型集合解释的非常好泛型集合泛型集合泛型集合解释的非常好泛型集合泛型集合泛型集合解释的非常好泛型集合泛型集合泛型集合解释的非常好泛型集合泛型集合
泛型的知识,请自己参考吧。主要介绍java泛型的知识。
Java 运行时如何获取泛型参数的类型 Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType 从实现的接口获取泛型参数 定义一个泛型父类: public interface SuperClass { String ...
C#,泛型C#,泛型C#,泛型C#,泛型C#,泛型C#,泛型C#,泛型
Java泛型编程指南.pdf 此文章译自SUN的泛型编程指南
泛型编程在C++领域中早已深入人心,它赋予了类型参数式多态的能力,这种能力在ISO-C++中以编译时的模板实例化为依托。而CLI借自己强大的元数据系统,选择了运行时的模板实例化来支持泛型编程。C++/CLI在保留ISO-C++...
C#的泛型C#的泛型
集合框架及泛型的介绍和基础理解,方便大家了解集合框架及泛型。
泛型学习和泛型接口和泛型经典示例
Java 实现泛型List的源码,基本实现了List接口的全部所有方法。欢迎大家发表自己的观点和建议。
同时,因为反射会带来性能损失,因此,可根据自己需求,针对每个类型轻松在两种模式之前切换,本例源码,测试实例俱全,而且代码浅显易懂,只要对泛型、反射、三层架构有一定了解的人都能轻松学习
java 一个关于泛型的简单例子 java 一个关于泛型的简单例子 java 一个关于泛型的简单例子
这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...