Java安全机制之泛型(JDK1.5)

泛型,类型安全机制。

好处:

1.将运行时期出现问题ClassCastException转移到了编译时期,方便解决问题,减少运行时期的问题,有利于程序的健壮性。

2.避免了强制转换的麻烦

泛型格式:

ArrayList<String> al = new ArrayList<String>();

若增加Integer类型的数据,在编译的时期就会提示错误。

使用迭代器取值的时候,需要声明类型

示例代码:

import java.util.*;

class GenericDemo2
{
    public static void main(String[] args)
    {
        TreeSet<String> ts = new TreeSet<String>(new LenComparator());
        ts.add("abcdc");
        ts.add("dbcdc");
        ts.add("cd");

        Iterator<String> it = ts.iterator();
        while(it.hasNext()){
            String s = it.next();
            System.out.println(s);
        }
    }
}

class LenComparator implements Comparator<String>
{
    public int compare(String obj1, String obj2){
        int num = new Integer(obj1.length()).compareTo(new Integer(obj2.length()));

        if(num==0)
            return obj2.compareTo(obj1);
        return num;

    }
}

问题一、

在使用java提供的对象时,什么时候使用泛型?

答:

通常在集合框架中比较常见。只要见到<>就要定义泛型

接口Collection<E>:E代表一个变量,形式参数。

其实<>就是用来接收类型的。

当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可。

------------------------------------

//泛型类
class Utils<T>
{
    private T t;
    public void setObject(T t){
        this.t = t;
    }

public T getObject(){
        return t;
    }
}

Demo<String> d = new Demoe<String>();

当类中要操作的引用数据类型不确定的时候,早起定义Object来完成拓展,现在定义泛型来完成拓展。

泛型类的对象明确要操作的具体类型后,所有方法要操作的类型就已经固定了。

------------------------------------------

为了让不同的方法可以操作不同的类型,而且类型还不确定,那么可以将泛型定义在方法上。

class Demo{

public <T>void show(T t){

}

public <T>void print(T t){

}

}

Demo d = new Demo();

-----------------------------------

静态方法,不可以访问类上定义的泛型。

如果静态方法操作的引用数据类型不确定,可以将泛型定义在方法上。

public static <W> void method(W t);

--------------------------------------

泛型限定:

<? extends Person>

? :通配符,可以理解为占位符

----------------------------------

泛型的限定:

用于泛型扩展

上限:

? extends E: 可以接受E类型或者E的子类类型。

下限:

? super E:可以接受E类型,或者E的父类型。

里面只能使用父类方法。

Java安全机制之泛型(JDK1.5)

时间: 2024-10-27 07:48:40

Java安全机制之泛型(JDK1.5)的相关文章

利用Java反射机制和泛型,全自动解析json

有啦这个简直,太爽啦, 利用Java 反射机制,利用Class 就可以得到 类的 变量  Field[] fields=cls.getDeclaredFields(); 还可以通过类中 的方法名字 去执行这个方法 m1 = cls.getDeclaredMethod(getMothodName(fields[j].getName()), String.class); m1.invoke(result,json.getString(fields[j].getName()) ); 利用泛型 去获取这

Java 异常处理机制和集合框架

课程  Java面向对象程序设计   实验名称  异常处理机制.集合框架 班级    13级计三          学号  10503                姓名 一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:try.catch.finally.throw.throws,请理解每个关键字的作用,并在编写程序,使用运用这5个关键字,观察效果

java反射机制初探

反射,reflection,听其名就像照镜子一样,可以看见自己也可以看见别人的每一部分.在java语言中这是一个很重要的特性.下面是来自sun公司官网关于反射的介绍: Reflection is a feature in the Java programming language. It allows an executing Java program to examine or "introspect" upon itself, and manipulate internal pro

Java集合框架之泛型

广州疯狂软件教育Java培训,iOS培训分享 泛型:1.5版本以后出现的新特性.用于解决安全问题,是一个安全机制. 好处: 1.将运行时期出现问题ClassCaseException,转移到了编译时期. 2.方便与程序员解决问题.让运行时事情减少,安全. 3.避免了强制类型转换 泛型格式:通过<>来定义要操作的引用数据类型 什么时候写泛型: 在集合框架中和常见 只要见到<>就要定义泛型 import java.util.Comparator; import java.util.It

【转载】Java反射机制详解

转自:http://baike.xsoftlab.net/view/209.html#3_8 1反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 2反射机制能做什么 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类: 在运行时构造任意一个类的对象: 在运行时判断任意一个类所具有的成员变量和方法: 在运行时调用任意一个

Java反射机制专题

·Java Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法 ·Java反射机制提供的功能 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任何一个对象的成员变量和方法 生成动态代理 ·反射相关的主要API: java.lang.Class:代表一个类 java.lang.refle

Java知识总结:Java反射机制(用实例理解)

概念理解: 反射是指一类应用,它们能够自描述和自控制.也就是说,这类应用通过采用某种机制来 实现对自己行为的描述( self-representation )和检测( examination) ,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义. Java中的反射是一个强大的工具,他能够创建灵活的代码,这些 代码可以在运行时装配,无需在组件之间进行链接,发射允许在编写和执行时,使程序代码能够接入装载到 JVM 中的类的内部信息 .而不是源代码中选定的类协作的代码.这使发射

java反射机制概述

一.反射 1.概述: JAVA反射机制是在运行状态中,对于任意一个类,都能够创建该类对象,调用这个类的所有属性和方法包括构造方法: 2.字节码文件 1)概述: 类加载器负责将.class文件加载到内在中,并为之生成对应的Class对象 2)字节码文件对象的三种获取方式 A:Object类的getClass()方法 B:所有类包括基本数据类型的静态属性class 如:int.class; String.class C:Class类中静态方法forName(String className) //参

从零开始理解JAVA事件处理机制(2)

第一节中的示例过于简单<从零开始理解JAVA事件处理机制(1)>,简单到让大家觉得这样的代码简直毫无用处.但是没办法,我们要继续写这毫无用处的代码,然后引出下一阶段真正有益的代码. 一:事件驱动模型初窥 我们要说事件驱动模型是观察者模式的升级版本,那我们就要说说其中的对应关系: 观察者对应监听器(学生) 被观察者对应事件源(教师) 事件源产生事件,监听器监听事件.爱钻牛角尖的朋友可能会说,我擦,什么叫产生事件,监听事件,事件事件到底什么? 莫慌,如果我们用代码来说事,事件源它就是个类,事件就是