传智播客2009 12 24 三、java基础加强(3)
一、泛型(Generic)
JDK5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样不可避免就会引发程序的一些安全性问题
Ø泛形的作用:
JDK5中的泛形允许程序员在编写集合代码时,就限制集合的处理类型,从而把原来程序运行时可能发生问题,转变为编译时的问题,以此提高程序的可读性和稳定性(尤其在大型程序中更为突出)。
注意:泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。但编译器编译完带有泛形的java程序后,生成的class文件中将不再带有泛形信息,以此使程序运行效率不受到影响,这个过程称之为“擦除”。
Ø泛型典型应用:
1、 使用迭代器迭代泛形集合中的元素。
Eg. List<String> list = new ArrayList<String>();
list.add("Acegi");
list.add("Red5");
list.add("OpenMeettings");
Iterator<String> it = list.iterator();
while(it.hasNext()){
String bookname = it.next();
… …
}
2、使用增强for循环迭代泛形集合中的元素。
Eg. for(String bookname : list){
… …
}
3、存取HashMap中的元素。
Eg. Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, " Acegi ");
map.put(2, " Red5");
map.put(3, " OpenMeettings ");
S
相关文档:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
ArrayList<ArrayList<Integer>> list = getArrays(1, 20, 30);
Iterator<ArrayList<Integer>> iter = list.itera ......
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String arg[]) {
String fileName = "E:\\share\\test.txt";
File file = new File(fileName);
......
转IBM的文章,比较详细。需要注意的是,
通过JavaCompiler进行编译都是在当前目录下生成.class文件,而使用编译选项可以改变这个默认目录。编译选项是一个元素为String类型的Iterable集合。如我们可以使用如下代码在D盘根目录下生成.class文件。
Iterable options = Arrays.asList("-d", "d:\\");
JavaCompiler. ......
javabean+数组优点:
1、简单:java程序中最简单的类莫过于javabean,javabean有一套成熟的规范,易于编写
2、方便:javabean是数据的载体,既可以通过set和get方式来操作数据,又可以象使用数组一样来操作javabean
3、通用:通过下标来操作javabean,你所写的代码将是通用的,可移植的。你所写的功能组件将适用于所有的 ......
一、反射(Reflect)
反射就是把Java类中的各种成分映射成一个个的java对象。例如,一个类有:成员变量,方法,构造方法,包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。映射成对象后,就可以调用对象的方法对其操作了。与反射相关的重要的类有Cl ......