反射静态/非静态 方法/成员(暂时均考虑public修饰的)

注意区分静态和非静态的区别

 

package one.two;

import java.lang.reflect.*;

public class StaticFieldRefactor
{
 public static String name = "yinbodotcc";
 public String notStatic = "notStaticValue";
 public static void staticMethos(int intparam)
 {
  System.out.println("I am static methods");
 }
 public void notStaticMethos()
 {
  System.out.println("I am not a static methods");
 }
 public static void main(String[] args) throws Exception
 {
  Class klass = Class.forName("one.two.StaticFieldRefactor");
  /**
   * 如果不是public修饰这个静态常量,会出错
   */
  Field fld = klass.getField("name");
  System.out.println(fld.get(null));
  fld.set(null, "cctodobniy");
  System.out.println(fld.get(null));
  
  System.out.println("******************************");
  
  Field field = klass.getField("notStatic");
  System.out.println(field.get(new StaticFieldRefactor()));
  
  System.out.println("******************************");
  
  Method staticMethos =klass.getMethod("staticMethos", new Class[]{int.class});
  staticMethos.invoke(null, new Object[]{new Integer(1)});
  
  System.out.println("******************************");
  
  Method notstaticMethos =klass.getMethod("notStaticMethos", new Class[]{});
  notstaticMethos.invoke(new StaticFieldRefactor(), new Object[]{});
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值