JDK 1.5之Generics_JSP编程

Generics 是JDK 1.5 一个最重要的特性,主要用来处理Collection。

  以下代码在JDK 1.5 调试通过。

  代码实例1: Demo.java

  package maoxiang.examples.jdk15.generics;
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.HashMap;
  import java.util.LinkedList;
  import java.util.List;
  import java.util.Map;

  /**
  * @author 毛翔
  *
  * 演示如何使用Generics 特性。代码来自于 Generics 教程:
  * http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
  *
  * Generics类似于C++中的模板。
  * 区别:
  * 1.
  * 2.
  */

  public class Demo {
  public static void main(String[] args) {}

  /**
  * 最简单的用法
  */

  public void Test1() {

  // 以前的用法
  //List myIntList = new LinkedList(); // 1
  //myIntList.add(new Integer(0)); // 2
  //Integer x = (Integer) myIntList.iterator().next(); // 3 需要强制转换
  // 1.5 的用法
  List myIntList = new LinkedList(); // 1'
  myIntList.add(new Integer(0)); //2'
  Integer x = myIntList.iterator().next(); // 3'
  }

  /**
  * 匿名字符的用法
  */

  public void Test2() {
  List list = new ArrayList();
  //通过匿名字符打印一个集合

  Wildcards(list);
  Wildcards1();
  /*
  * 如果 Wildcards2 定义为Wildcards2(List shapes)
  * 以下调用错误
  */
  Wildcards2(list);
  }

  public void Wildcards(Collection< ? > c) {
  // 以前的用法
  //Iterator i = c.iterator();
  //for (int k = 0; k < c.size(); k++) {
  //
  log(i.next());
   //}

  //1.5 的用法
  //Collection<?> c 表示
  for (Object e : c) {
  log(e);
  }
  }

  public void Wildcards1() {
  //Collection<?> c = new ArrayList();
  //c.add(new Object()); // compile time error

  //以上为错误的用法,因为不能确定 c 的类型 ,不能使用add ,但get可以 。正确的用法如下:

  ArrayList c = new ArrayList();
  c.add("test");
  List< ? > list = c;
  log(c.get(0));
  }

  public void Wildcards2(List< ? extends Shape> shapes) {
  //List shapes 定义只能接受List shapes,也不能接受 List
  for (Shape s : shapes) {
  s.draw();
  }

  //以下写法错误,因为为参数申明为 extends Shpape,无法确定Rectangle 为Shape子类,属于不安全调用
  //shapes.add(0, new Rectangle());

  Map allDrivers = new HashMap();
  Census.addRegistry(allDrivers);
  //以下写法允许,因为drivers明确定义,
  List drivers = new ArrayList();
  Census.add(drivers);
  }

  /**
  * Generic Methods 的用法
  *
  */

  public void Test3() {
  //适用于各种类型的函数
  Object[] oa = new Object[100];
  Collection

时间: 2024-09-12 22:33:41

JDK 1.5之Generics_JSP编程的相关文章

JAVA专业术语集

刚开始的时候,总对许多名词不理解,既然有了资料,就共享喽:    API:Java ApplicationProgrammingInterface API(应用程序接口)是事先写好 的代码, 组织到相关包.例如 Applet 和 AWT 包包括建立字体.菜单.按钮的类 (CLASS),全部的Java API被包含在JavaTM 2 Standard Edition 1. 在线API文 档 2. API文档下载   Applet Applet(小应用程序)是在WEB浏览器里运行的java程序.Ap

深入剖析JSP和Servlet对中文的处理过程

js|servlet|过程|中文 概述 世界上的各地区都有本地的语言.地区差异直接导致了语言环境的差异.在开发一个国际化程序的过程中,处理语言问题就显得很重要了. 这是一个世界范围内都存在的问题,所以,Java提供了世界性的解决方法.本文描述的方法是用于处理中文的,但是,推而广之,对于处理世界上其它国家和地区的语言同样适用. 汉字是双字节的.所谓双字节是指一个双字要占用两个BYTE的位置(即16位),分别称为高位和低位.中国规定的汉字编码为GB2312,这是强制性的,目前几乎所有的能处理中文的应

JAVA省略语与名词解释

J2EETM----JavaTM2PlatformEnterpriseEdition:J2EE(JAVA2企业版)平台提供一个基于组件设计.开发.集合.展开企业应用的途径.J2EE平台提供了多层.分布式的应用模型,重新利用组件的能力,统一安全的模式以及灵活的处理控制能力. J2METM----JavaTM2MicroEditionJ2ME:(JAVA2精简版)API规格基于J2SETM,但是被修改成为只能适合某种产品的单一要求.J2ME使JAVA程序应用于电话卡.寻呼机等其他消费产品成为可能.

JAVA开发的疑问?

问题描述 C++开发的时候,在windows开发一些通讯软件,需要调用windows的一些API,需要学windows编程.那么如果用JAVA在windows下开发一些通讯软件,或者其他软件,需要用windows的API去实现某些功能,那么是不是还要学习windows编程,还是直接学懂jdk,在什么操作系统的编程都可以得心应手呢?其实主要的问题,是想问,java的编程是不是只要研究好jdk,在windows下开发已经可以完成很多软件开发的工作? 解决方案 解决方案二:java由于是跨平台的,做出

Android开发环境搭建遇到问题!

问题描述 java-JDK是 1.7.0_03版本.android-SDK也已经弄好.eclipse也解压完毕.不过却提示这个.  百度了一下.改了eclipse.ini的配置.又出现了这个. 这是我环境变量的配置.path:C:Program FilesCommon FilesMicrosoft SharedWindows Live;C:Program Files (x86)Common FilesMicrosoft SharedWindows Live;C:Program Files (x8

牛客问题

之前做的题都没有记录哪里的知识点存在漏洞的.有些时候还是会忘记的,还是记录下来吧! 在做题的时候也有发现自己完全没有见过的知识内容! 1  Math 类包含用于执行基本数学运算的方法?      Math 类包含用于执行基本数学运算的方法,这也不需要一一的记住.在使用的时候可以查看文档.       常用的一些可以了解 比如:  random()方法一般是用来产生随机数的(返回带正号的 double 值,该值大于等于 0.0 且小于 1.0. 是一个伪随机选择的数)              

JDK/JRE5.0中对于IPv6的支持-解读JDK5.0对IPv6网络编程的支持

编程|网络 JDK5.0 Document:Networking IPv6 User Guide for JDK/JRE 5.0This document covers the following topics:Overview Supported Operating Systems Using IPv6 in Java Details on IPv6 Support in Java Special IPv6 Address Types IPv6-Related System Propertie

Java编程那些事儿73——JDK文档使用

第九章 JDK文档使用 前面提到过,一个程序设计语言主要包含三个部分:语言的语法.开发工具和一套基础的功能.Java语言的语法以及开发工具JDK前面都已经介绍过了,本章就将介绍Java语言提供的这套基础的功能. 对于任何一个程序设计语言来说,都将提供一套已经编写完成的基础功能,这种和语言一起发布的这套基础功能一般被称作API(Application Programming Interface,应用编程接口),在面向过程的语言中也被称为函数库(Function Library),在面向对象的语言中

2、MyEclipse和Eclipse调优,MyEclipse配置(tomcat和jdk的内存设置),jar引入相关知识点,将Java项目编程web项目的办法

1.WindowàPreferenceàGeneralàWorkspaceàText file encoding都改成UTF-8 2.WindowàPreferenceàGeneralàEditorsàFile Associationsà修改html和htm的默认Associateeditors为以下的: 修改jsp的打开方式: 修改xml的打开方式: 3.修改MyEclipse的启动服务 WindowàPreferenceàGeneralàStartup and Shutdown 4 Wi