数组的反射

一、数组类类型

数组类类型的表示方法:数组对象.getClass        数组维度.Class

 1 import java.lang.reflect.Method;
 2
 3 public class test {
 4   public static void main(String[] args) {
 5     try {
 6          Class c=B.class;
 7          Method method=c.getMethod("show", new Class[]{String[].class ,int[].class});
 8          //数组的类类型对象只与数组名称和数组维度有关
 9          //如int[] a={1,2,3}  int[] b={2,3,4,5}    那么a.getClass==b.getClass; 说明类类型的对象相同
10          method.invoke(c.newInstance(), new Object[]{new String[]{"as","sd"},new int[]{1,2}} );
11     } catch (Exception e) {
12         e.printStackTrace();
13     }
14   }
15 }
16 class B{
17     public void show(String[] s,int[] r){
18         for (int i : r) {
19             System.out.println(i);
20         }
21         for (String t : s) {
22             System.out.println(t);
23         }
24     }
25 }

2、判定所传对象是否为数组

public void Shoe(Object object){
      Class  c=object.getClass;
     c.isArray();//判定所传对象是否为数组
}
时间: 2024-08-25 08:15:06

数组的反射的相关文章

黑马程序员-java基础-数组的反射

数组是一个对象,具有相同维数和元素类型的数组具有相同的字节码(相同类型). 所有数组其父类都是object.Object o = new int[2] 或者 Object o = new int[2][2];不会报错 基本类型的一维数组可以被当作Object类型使用,不能当作Object[]类型使用: int[] arr = new int[2]; Object o1 = arr Object[] o2 = arr //会报错 Object[] o3 = new Object[2][2];可以,

java中数组的反射的探究

数组的反射有什么用呢?何时需要使用数组的反射呢?先来看下下面的代码: Integer[] nums = {1, 2, 3, 4}; Object[] objs = nums; //这里能自动的将Integer[]转成Object[] Object obj = nums; //Integer[]当然是一个Object int[] ids = {1, 2, 3, 4}; //Object[] objs2 = ids; //这里不能将int[]转换成Object[] Object obj2 = ids

JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践

JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识Class类 想要反射,你就必须要了解一个类--Class,我们知道,java程序中的各个java类都属于同一事物,我们通常用Classliability描述对吧,反射这个概念从JDK1.2就出来了,历史算是比较悠久了,这个Class可不是关键字哦,这个是一个类,他代表的是一类事物: 我们归根结底就

java基础巩固系列(四):数组的反射应用

对于数组,我们可以通过反射打印出其中的所有对象: package com.test; import java.lang.reflect.Array; import java.lang.reflect.Field; public class ReflectTest { public static void main(String []args) throws Exception{ int[] a=new int[]{1,2,3,4}; printObject(a); } private stati

wrong number of arguments,java方法反射时数组参数的坑

java方法中只有一个参数是数组,反射的时候我们不能想当然的传歌数组进去,传数组进去的时候表示多个参数. 两个数组不是一个意思啊. 我们应该把数组转为objet,这样才表示一个参数. import java.lang.reflect.Method; public class MethodTest { public void a(String[] args) { System.out.println("a"); } public static void main(String[] arg

黑马程序员——JAVA基础-反射

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 反射是在运行状态中,对于任意一个类(class文件),都能够知道这个类的所有属性和方法:对于任意一个对象,都只能都调用它的任意一个 方法和属性,这种动态获取的信息一级动态调用对象的方法的功能呢个称为java 的反射机制. 反射其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象, 并将字节码文件中的内容都封装成对象,这样便于操作这些成员.就是把JAVA类中的各种成

JDK1.5的新特性(2):反射

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Java反射机制深入详解

一.概念 反射就是把Java的各种成分映射成相应的Java类. Class类的构造方法是private,由JVM创建. 反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作.例如它允许一个java的类获取他所有的成员变量和方法并且显示出来.Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性.例如,Pascal.C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息. (来自Sun) Java

C#反射技术概念作用和要点

反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数等.有了反射,即可对每一个类型了如指掌.如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道. 1..NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构. 应用程序结构分为应用程序域—程序集—模块—类型—成员