易截截图软件、单文件、免安装、纯绿色、仅160KB

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代码连接到oracle数据库

package com.deng.oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestOracle {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriv ......

Java文件对象创建目录和文件

   在java中貌似不能同时创建目录和文件,需要分布创建,即不能在创建目录的时候,同时创建该目录下的文件,如果要创建的话,需要分两步,下边是创建的代码Java代码 try {              String path = "D:/test ......

JAVA中的反射机制详解

JAVA反射机制
    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属 ......

Java 复习笔记_第3天


数据结构和算法
冒泡:每次比较都可找出最大或最小的,有序的在最右边
选择排序:有序的在最左边
插入排序:速度比冒泡快一倍,比选择也快。
    
递归
      
调用自身
      
汉诺塔问题:
/**
* @汉诺塔的问题
*/ ......

Java异常处理

六种异常处理的陋习
    你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
Java代码
OutputStreamWriter out = ...       
java.sql.Connection conn =& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号