Java基础学习十一(Java反射)

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

反射
反射就是把Java类中的各种成分映射成相应的java类.
 
创建Class对象有三种方式:
 
1.对象.getClass();

2.Class.forName("类名");

3. 类名.class

Constructor类(构造方法的反射)
  创建某个类的所有构造方法:
     Constructor[] consturctors = Class.forName(“java.lang.String”).getConstructors();
   创建某一个构造方法:
    如 Constructor consturctor =String.class.getConstructor(StringBuffer.class);
  
   创建实例对象:
     通常方式:String str = new String(new StringBuffer (”abc”));
     反射方式:String str = (String)consturctor.newInstance(new StringBuffer(“abc”));
   Class.newInstance():创建一个对象,不带参数的构造方法。
  
4、Field类(成员变量的反射)
   Field类代表某个类中的成员变量
5、Method类(成员方法的反射)
Method类代表某个类中的一个成员方法。
 创建类中的某一个方法:
     例子:Method charAt = Class.forName("java.lang.String").getMethod("charAt",int.class);
   调用方法:
     通常方式:System.out.println(str.charAt(1));
     反射方式:System.out.println(charAt.invoke(str,1));


Class类中存在以下几个重要的方法:
 
1.getName()
一个Class对象描述了一个特定类的特定属性,而这个方法就是返回String形式的该类的简要描述

2.newInstance()
该方法可以根据某个Class对象产生其对应类的实例。它调用的是此类的默认构造方法。例如:
MyObject y = x.getClass().newInstance();

3.getClassLoader()
返回该Class对象对应的类的类加载器。
 
4.getSuperClass()
返回某子类所对应的直接父类所对应的Class对象。
 
5.isArray()
判定此Class对象所对应的是否是一个数组对象。
反射
反射就是把Java类中的各种成分映射成相应的java类.
 
创建Class对象有三种方式:
 
1.对象.getClass();

2.Class.forName("类名");

3. 类名.class

Constructor类(构造方法的反射)
  创建某个类的所有构造方法:
     Constructor[] consturctors = Class.forName(“java.lang.String”).getConstructors();
   创建某一个构造方法:
    如 Constructor consturctor =String.class.getConstructor(StringBuffer.class);
  
   创建实例对象:
     通常方式:String str = new String(new StringBuffer (”abc”));
     反射方式:String str = (String)consturctor.newInstance(new StringBuffer(“abc”));
   Class.newInstance():创建一个对象,不带参数的构造方法。
  
4、Field类(成员变量的反射)
   Field类代表某个类中的成员变量
5、Method类(成员方法的反射)
Method类代表某个类中的一个成员方法。
 创建类中的某一个方法:
     例子:Method charAt = Class.forName("java.lang.String").getMethod("charAt",int.class);
   调用方法:
     通常方式:System.out.println(str.charAt(1));
     反射方式:System.out.println(charAt.invoke(str,1));


Class类中存在以下几个重要的方法:
 
1.getName()
一个Class对象描述了一个特定类的特定属性,而这个方法就是返回String形式的该类的简要描述

2.newInstance()
该方法可以根据某个Class对象产生其对应类的实例。它调用的是此类的默认构造方法。例如:
MyObject y = x.getClass().newInstance();

3.getClassLoader()
返回该Class对象对应的类的类加载器。
 
4.getSuperClass()
返回某子类所对应的直接父类所对应的Class对象。
 
5.isArray()
判定此Class对象所对应的是否是一个数组对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值