Java Reflect 反射 学习笔记3 操作
Java Reflect编写 通用数组扩展类
package com.accp.array;
import java.lang.reflect.Array;
public class GrowArrayTest {
public static void main(String[] args) {
Integer[] array = {1,2,3,4}; //通用扩展
arrayPrint(array);
array = (Integer[])goodArrayGrow(array);
arrayPrint(array);
String[] str = {"xw","xz"};
arrayPrint(str);
str = (String[])badArrayGrow(str); //会报ClassCastException异常,无法将Object转换成String类型
arrayPrint(str);
int[] a = null;
goodArrayGrow(a);
arrayPrint(a);
}
public static Object goodArrayGrow(Object o) {
Class clazz = o.getClass(); //得到类型信息
if (!clazz.isArray())
return null;
Class type = clazz.getComponentType(); //得到o的类型
int newLength = Array.getLength(o) * 11 / 10 + 10;
Object newArray = Array.newInstance(type, newLength); //创建一个新的Array, type = clazz.getComponentype()
System.arraycopy(o, 0, newArray, 0, Array.getLength(o));
return newArray;
}
public static Object[] badArrayGrow(Object[] o){
int newLength = o.length * 11 /10 +10;
Object[] newArray = new Object[o.length];
System.arraycopy(o, 0, newArray, 0, o.length);
return newArray;
}
public static void arrayPrint(Object a) { // 遍历输出数组值
Class clazz = a.getClass(); // 得到类型信息
if (!clazz.isArray())
return;
Class type = clazz.getComponentType(); // 得到类型
Integer length = Array.getLength(a); // 得到长度
System.out.print(type.getName() + "[" + length + "]={"); // 格式化输出
for (int i = 0; i < Array.getLength(a); i++)
System.out.print(Array.get(a, i) + " ");
System.out.println("}");
}
}
 
相关文档:
在java中貌似不能同时创建目录和文件,需要分布创建,即不能在创建目录的时候,同时创建该目录下的文件,如果要创建的话,需要分两步,下边是创建的代码Java代码 try { String path = "D:/test ......
数据库连接
流是指一连串流动的字符,是以先进先出的方式处理的。
构造一个文件输入流对象:InputStream o = new FileInputStream(“a.txt&rdquo ......
doGet()和doPost()
Jsp页面的form标签里的method属性为get时调用doget(0,
为post时调用doPost()
Jsp
Jsp引擎(Tomcat)先将jsp文件转换为servlet,然后调用Java编译器javac.exe对
......
Java代码:
import java.util.regex.*;
public final class RegExpValidator
{
/**
* 验证邮箱
* @param 待验证的字符串
* @return 如果是符合的字符串,返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isEmail(String str)
{
......