a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 115|回复: 0

[基础知识] JAVA认证考试基础知识笔记15

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
二。成员变量的反射Field:
) ^1 S  O) \0 A* P    class Point  p {int x=3;int y =4;}
" A3 X' H- L4 W0 r' J( [2 J* s& q9 U    Field fieldx = p.getClass()。getField("x");4 S1 M& p/ M9 M) R& S+ T1 X* l, X
    System.out.println(fieldx.get(p)); 即可得到p中x的值。
# C5 E2 P! p3 v/ s; T  i$ Z    三。成员方法的反射:
( f" h- a& m/ k% `$ {2 ]    必须导入java.lang.reflect.*;包治好才能使用7 e% d( S* r8 V+ t& B7 \
    String str = "dafsf"
' i! @; r5 C) o$ m0 _8 \1 t- f    Method methodCharAt = String.class.getMethod("charAt",int.class);( |* P: A, W/ U; f  |7 W
    System.out.println(methodCharAt.invoke(str,1));# G) |+ a$ H0 @2 l
    方法的反射是最能 体现反射的意思的,即以方法为中心,原来作用的类和参数都作为该方法的参数。) d& h& d/ a6 |( r  u# j
    四。main方法的反射:- H+ i" G8 p& j% }! x- M
    package com.baidu.exam;5 K" Z! B8 ?3 Y# e
    import java.lang.reflect.Method;6 O: F8 |; I6 m# c+ Q
    class Point {
: F& t+ B2 I, A0 S3 _    public static void main(String[]args)throws Exception4 d" r" r8 q# Q) ?3 f9 M
    {5 U; P( k4 H0 p4 I! L( s) s% z
    String name = args[0];
$ [* [0 g5 ^1 ]" i4 h9 G    Method mainMethod = Class.forName(name)。getMethod("main", String[].class);# J5 c3 ?' {  u9 K. B( M
    mainMethod.invoke(null, (Object)new String[]{"eAWDR","rgsfe","gs"});    //此时强制转换特别重要
7 n9 w  E4 N" Y' ^& d% F    }1 O+ p+ x' T3 `
    }3 q5 Z: j" S" H8 H6 h) w
    class Hello% o, S* K, l4 w% Y* W' v. _3 |
    {
1 ]9 ^7 [0 N+ k    public static void main(String[]args) {
- }3 y2 i' `; k; p    for(String str:args){
9 {' p$ ?0 ]3 P/ W    System.out.println(str);
( q  c, S4 v8 r9 s+ `0 D9 q* e6 N    }
& B8 l$ o4 u! C& S' h6 G    }
" K8 e! D; H, Q9 W$ c    }
, d$ T: F: D: h1 a8 u    将main方法发射的实例。, D4 q  _2 i6 M
    五。数组的反射:
5 q; O  F$ M6 V) I+ }' T' V4 z    有一个关于数组反射的工具类Array,在java.lang.reflect包中,, l5 k# `: K- x% b
    关键方法:Array.get(Object [] obj ,int i)得到obj数组中第i个元素i的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-16 21:40 , Processed in 0.322426 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表