- 浏览: 98974 次
- 性别:
- 来自: 苏州
-
文章分类
最新评论
-
jameswolf:
补肾啊!冬天多喝,但是补只是后招,别漏才是真理,呵呵
朋友告诉我的神粥秘方 -
wa327114652:
很想学习,但能再详细点吗?
for java beginner 5-2 - 自己实现枚举-下 -
superlittlefish:
不错,简单易懂.一直在看你的blog,感觉反射写的挺好的.让我 ...
for java beginner 15 下java反射在框架里的应用 读取properties文件
java 反射 数组的反射
数组也是一种类型,当然可以反射
如果数组的 类型 维度 一样,那么他们反射出来的 字节码是一样的
-----------
-------------------------
数组也是一种类型,当然可以反射
如果数组的 类型 维度 一样,那么他们反射出来的 字节码是一样的
-----------
package com.ncs; import java.lang.reflect.Array; import java.util.Arrays; public class ArrayReflct { public static void main(String[] args) { //数组也是一种类型,当然可以反射 //如果数组的 类型 维度 一样,那么他们反射出来的 字节码是一样的 int[] a1 = new int[3]; int[] a2 = new int[4]; int[][] a3 = new int[2][3]; String[] a4 = new String[3]; System.out.println(a1.getClass() == a2.getClass()); //true System.out.println(a1.getClass() == a4.getClass()); //false System.out.println(a1.getClass() == a3.getClass()); //false System.out.println(a1.getClass().getName()); //[I 名字很奇怪,可以看JDK帮助,里面有 System.out.println(a1.getClass().getSuperclass().getName()); //java.lang.Object System.out.println(a4.getClass().getSuperclass().getName()); //java.lang.Object Object object1 = a1; Object object2 = a4; //Object[] object3 = a1; //★只有这个不可以,基本类型不是OBJECT Object[] objects4 = a3; Object[] objects5 = a4; //-------------下面再说一个 幽禁的东西 //int[] myIntArr = new int[3]{1,2,3}; //不要弄这样的错误,既然给值了,就不要说 长度了 int[] myIntArr = new int[]{1,2,3}; //不要弄这样的错误,既然给值了,就不要说 长度了 String[] myStrArr = new String[]{"a","b","c"}; //我现在要打印,懒的用 loop 怎么办 System.out.println(myIntArr); //[I@6b97fd System.out.println(myStrArr); //[Ljava.lang.String;@1c78e57 //不是我要的效果,用一个 帮助 类 System.out.println(Arrays.asList(myIntArr));//[[I@6b97fd] System.out.println(Arrays.asList(myStrArr));//[a, b, c] //Object 可以了, 但是 基本类型给你弄了个东西,把它当成一个元素了 //怎么会这样呢?? //1.4 里 是这样的 public static List asList(Object[] a) //所以它拿到 myStrArr 就 匹配这个方法了 //而 myIntArr 不是 Object[] ,看看上面★号的地方 //1.4说,不是我的事情了,你1.5有本事就自己拿去处理吧 //1.5 是这样的 public static <T> List<T> asList(T... a) //这个说把你一堆东西弄成一个list //现在进来 myIntArr 它只把你当一个object //处理的办法不知道了, 还是用 loop 吧[对于 基本类型] //想出来了,用 数组的反射技术 //Object obj = null; //printObject(obj); System.out.println("======================="); //test int[] myIntArr2 = new int[]{1,2,3}; String[] myStrArr2 = new String[]{"a","b","c"}; String str = "hubin"; printObject(myIntArr2); printObject(myStrArr2); printObject(str); //自己写的比 JDK 里的好多了★★ //----------怎么得到数组的元素类型呢?? String[] testStrArr = new String[]{"a","b","c"}; System.out.println(testStrArr.getClass().toString()); //class [Ljava.lang.String;原来是String类型 } private static void printObject(Object obj) { //这里就是给你打印了 //参数是 object 什么都可以进来,所以要判断一下 //是 数组 ,就给你一个一个 弄出来 ,不是数组,就直接打印好了 //★这里SUN给了个类 用来操作 数组 Array Class clazz = obj.getClass(); //不可能会有 obj.length ,你怎么知道obj就是数组呢?????????? if(clazz.isArray()){ //这就是了 //是了我就要一个一个把你弄出来 //需要那个类了 int length = Array.getLength(obj); for(int i=0;i<length;i++) { System.out.println(Array.get(obj, i)); } }else { //这里不是数组了 System.out.println(obj); } } }
-------------------------
发表评论
-
pull解析器通用解析XML与生成XML
2013-02-23 14:52 0pull解析器,简单易用,android都在用,肯定有他的优 ... -
java decompiler - a tool to view jar file
2012-02-15 22:26 1046有时候还是很需要看看人家JAR包里写的什么乱七八糟的东西,这东 ... -
JAVA工作
2011-07-20 21:11 744################## Applet ... -
helios-use-subversion-behind-proxy
2011-04-04 16:30 784download the eclipse helios in ... -
IBM发布时间不足解决方法
2011-02-17 19:16 783D:\IBM\SDP\runtimes\base_v61\p ... -
log4j简单例子
2010-10-03 18:27 905简单点说, 写程序时,有时懒得debug,就直接Sy ... -
java 泛型-1-使用而已
2009-12-01 23:39 1150023-java1.5泛型-1 懒人想的 把检查代码的工作交 ... -
java 1.5 annotation-3 设值让反射拿
2009-12-01 20:39 1625java 1.5 annotation 的use 前面的什么 ... -
java 1.5 annotation-2
2009-11-30 23:28 1203java 1.5 注解-2[非常重要 比每举重要] 刚刚只是 ... -
java 1.5 annotation-1
2009-11-30 21:07 1349java 1.5 注解[非常重要 比每举重要] 1.5后的新 ... -
for java beginner-19 beanutils包
2009-11-29 22:20 769019-使用BeanUtils工具包操 ... -
for java beginner-18 JAVABEAN规范-1
2009-11-29 21:12 1080018-JAVABEAN规范-1 IntroSpec ... -
for java beginner 17 配置文件的知识
2009-11-29 19:29 801017 配置文件的知识 刚刚已经说到 配置文件,我说放 工程 ... -
for java beginner 15 下java反射在框架里的应用 读取properties文件
2009-11-29 17:44 1422java 框架基础 ------------------- ... -
for java beginner 14 ArrayList HashSet HashCode(中)
2009-11-29 13:24 1169java 反射 数组的反射 ArrayList HashSe ... -
for java beginner13java 反射 数组的反射(上)其实是讲ArrayList HashSet HashCode
2009-11-29 12:35 972java 反射 数组的反射(上 ... -
for java beginner11 java 反射 Method类
2009-11-29 08:30 1336java 反射 Method类 str1.charAt() ... -
for java beginner10 java 反射 Field类
2009-11-29 07:17 3594java 反射 Field类 -------用到一个bea ... -
for java beginner 9 java反射的概念和Constructor 类
2009-11-29 07:13 1444java 反射 的概念 和 Constructor 类 反 ... -
for java beginner 8 java 反射的基础基础Class的理解
2009-11-29 07:09 1065java 反射 的基础基础 Class的理解 反射 在 1 ...
相关推荐
12. **反射与注解**:反射允许程序在运行时检查类、接口和对象的信息,而注解为代码提供了元数据,增强了代码的可读性和可维护性。 13. **泛型与枚举**:泛型提供了一种方式来限制容器存储的数据类型,枚举则是一种...
12. **反射API**:掌握在运行时动态获取类信息和创建对象的能力。 13. **Java标准库**:熟悉常用的Java API,如IO流、集合框架、日期时间处理等。 14. **编译与打包**:了解如何使用jar命令创建可执行的Java程序包...
2. **Java 程序结构与语法**:这部分内容涵盖了 Java 的基本语法结构,包括变量、数据类型、控制结构(条件语句和循环)、函数、数组等。这些基础知识对于编写任何 Java 应用程序都是必不可少的。 3. **面向对象...
12. **反射**:学习如何在运行时动态获取类的信息,创建对象,调用方法,以及修改私有成员等。 通过上述这些知识点的学习和实践,初学者将能够熟练地编写和理解Java程序,为后续深入学习Java的高级特性和框架打下...
《Java实用教程(第3版)源码》是著名编程专家Herbert Schildt的一部经典著作,专门针对初学者介绍Java编程基础。这个压缩包包含了一系列以“Module”命名的lst文件,很可能是该书各个章节的源代码示例。通过对这些...
标题 "Java_beginner:ПреисполняюсьпознаниямисШилдтомJavaRushКурсомотmail.ruнаютубе" 提示我们这是一个针对初学者的Java学习资源,可能来自于网络课程,比如...
通过深入学习和实践,你将能够掌握更多高级概念,如反射、泛型、枚举、注解、并发编程、网络编程以及Java的模块化系统等。对于初学者来说,理解并熟练应用这些基础将为未来的Java开发之路打下坚实的基础。