/*
* 泛型
* 泛型是java se1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类,接口和方法的创建中,分别
* 称为泛型类,泛型接口,泛型方法
* 泛型的好处是安全简单
* 在没有泛型之前是通过对类型object的引用来实现参数的任意化,任意化带来的缺点是是要强制转换类型,而这种强制转换是在开发人员在堆参数的类型的提前的预知
* 的基础下进行的,强制类型转换的错误编译器可能会忽略,而等到程序运行的时候才会报错,这无疑就留下了安全隐患
* 泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率
* 泛型的反射机制
* 泛型的优点:
* 类型安全
* 向后兼容
* 层次清晰
* 性能较高,用GJ(泛型java)编写程序可以给java编译器和虚拟机带来更多的类型信息,这些信息为进一步优化java的程序提供条件
*
*/
import java.util.*;
public class Demo9 {
public static void main(String[] args){
ArrayList<Dog> al=new ArrayList<Dog>();//使用泛型,就可以不用强制类型转换,编译器会自动根据对象的类型自动转换
Dog dog1=new Dog();
//Dog dog1=(Dog)new Dog();//不在需要这样认为转换
al.add(dog1);
Dog temp=al.get(0);
//Cat temp=(Cat)al.get(0);//类型转换出错
}
}
class Dog{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Cat{
private String color;
private int age;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/*
* 泛型的反射机制
*/
import java.lang.reflect.*;
public class Demo10 {
public static void main(String[] args){
Gen<String> gen1=new Gen<String>("aaa");
//gen1.showTypeName();
Gen<Integer> gen2=new Gen<Integer>(1);
//gen2.showTypeName();
Gen<Bird> gen3=new Gen<Bird>(new Bird());
gen3.showTypeName();
}
}
class Gen<T>{
private T o;
//构造函数
public Gen(T a){
o=a;
}
//得到T的类型
public void showTypeName(){
System.out.println("类型是:"+o.getClass().getName());
System.out.println("方法是:");
//通过反射机制可以得到某个类的很多的信息
Method [] m=o.getClass().getMethods();
for(int i=0;i<m.length;i++){
System.out.println(m[i].getName());
}
}
}
class Bird{
public void test1(){
System.out.println("aaa");
}
public float count(float a,float b){
return (a+b);
}
}
分享到:
相关推荐
Java 实现泛型List的源码,基本实现了List接口的全部所有方法。欢迎大家发表自己的观点和建议。
2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip...
Java Generics and Collections 英文版,详细描述java 泛型技术
java 继承泛型类示例 java 继承泛型类示例 java 继承泛型类示例
Java泛型编程指南.pdf 此文章译自SUN的泛型编程指南
这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...
java 泛型类的类型识别示例 java 泛型类的类型识别示例 java 泛型类的类型识别示例
Java1.5泛型指南中文版
java5泛型新特性 pdf,自己看不解释!
java 一个关于泛型的简单例子 java 一个关于泛型的简单例子 java 一个关于泛型的简单例子
在Java中运用反射+泛型,实现数据库的动态增删改查等功能,可以是Mysql, 也可以是SQL Server,oracle 也行。本代码是支持SQL Server和oracle的。
java 使用泛型,优化重复多余代码.
Java源码泛型类的继承应用.rar
Java泛型指南中文版 Java 1.5 泛型指南中文版是一个详细的Java泛型教程,涵盖了Java泛型的各个方面。下面是该教程的知识点摘要: 1. 介绍:Java 1.5 中引入了泛型(generics),允许对类型进行抽象(abstract over...
关于java的泛型.doc 关于java的泛型.doc
java 泛型接口示例 java 泛型接口示例 java 泛型接口示例
java,学习java泛型,java培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptx
java泛型技术之发展,学习JAVA 泛型的不错东东
1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1....
实例讲解Java泛型编程的快速入门实例讲解Java泛型编程的快速入门实例讲解Java泛型编程的快速入门实例讲解Java泛型编程的快速入门实例讲解Java泛型编程的快速入门