用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

各种反射的用法

2013-04-27 作者: 海大软件1102班举报

[java]代码库

 import java.lang.reflect.Field;
 public class ReflectTest{
   public static void main(String[] args){
     String str1="abc";
     Class cls1=str1.getClass();
     Class cls2=String.class;
     //Class cls3=Class.forName("java.lang.String");
     System.out.println(cls1==cls2);
    // System.out.println(cls1==cls3);
      System.out.println(cls1.isPrimitive());
      System.out.println(int.class.isPrimitive());
      System.out.println(int.class==Integer.class);
      System.out.println(int.class==Integer.TYPE);
      System.out.println(int[].class.isPrimitive());
      try{
      //获取相对应的字段
      ReflectPoint pt1=new ReflectPoint(3,5);
      Field fieldY=pt1.getClass().getField("y");
      System.out.println(fieldY.get(pt1));
      Field fieldx=pt1.getClass().getDeclaredField("x");
      fieldx.setAccessible(true);
      System.out.println("a"+fieldx.get(pt1));
      changeStringValue(pt1);
      System.out.println(pt1);
      }catch(Exception e2)
      {
          System.out.println(e2);
      }
   }
 
     private static void changeStringValue(Object obj) throws Exception {
         Field[] fields=obj.getClass().getFields();
         for(Field field:fields){
             //field.getType().equals(String.class);
             if(field.getType()==String.class)
             {
                 //以后是取出相应的字段,然后用replace方法下替换字符
                 String oldValue=(String)field.get(obj);
                 String newValue=oldValue.replace('b', 'a');    
                 field.set(obj, newValue);
             }
         }
         
     }
 
 
 }


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...