当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

反射基本概念和操纵[Java编程]

赞助商链接



  本文“反射基本概念和操纵[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Reflection是Java 程序开辟语言的特点之一,它答应运行中的 Java 程序对自身举行查抄,大概说"自审",并能直接操作程序的内部属性.比方,利用它能得到 Java 类中各成员的名称并显示出来.

Java 的这一本领在实际利用中大概用得不是很多,但是在别的的程序计划语言中根本就不存在这一特点.比方,Pascal、C 大概 C++ 中就没有办法在程序中得到函数定义相关的信息.

JavaBean 是 reflection 的实际利用之一,它能让一些工具可视化的操作软件组件.这些工具通过 reflection 动态的载入并获得 Java 组件(类) 的属性.

1. 一个简单的例子

考虑下面这个简单的例子,让我们看看 reflection 是若何工作的.

import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}

按以下语句履行:

java DumpMethods java.util.Stack

它的后果输出为:

public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)

这样就列出了java.util.Stack 类的各办法名以及它们的限制符和返回范例.

这个程序利用 Class.forName 载入指定的类,然后调用 getDeclaredMethods 来获得这个类中定义了的办法列表.java.lang.reflect.Methods 是用来描写某个类中单个办法的一个类.

2.开始利用 Reflection

用于 reflection 的类,如 Method,可以在 java.lang.relfect 包中找到.利用这些类的时刻必必要遵守三个步骤:第一步是得到你想操作的类的 java.lang.Class 对象.在运行中的 Java 程序中,用 java.lang.Class 类来描写类和接口等.

下面就是得到一个 Class 对象的办法之一:

Class c = Class.forName("java.lang.String");

这条语句得到一个 String 类的类对象.还有另一种办法,以下面的语句:

Class c = int.class;

大概

Class c = Integer.TYPE;

它们可得到基本范例的类信息.此中后一种办法中拜候的是基本范例的封装类 (如 Integer) 中预先定义好的 TYPE 字段.


  以上是“反射基本概念和操纵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 反射基本概念和操纵
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .