当前位置: 移动技术网 > IT编程>开发语言>Java > Java中反射的一个简单使用

Java中反射的一个简单使用

2019年07月22日  | 移动技术网IT编程  | 我要评论

简介

首先介绍一些不太实用的解释:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

简单使用

反射,在java中是非常常见和好用的一种方式,(但是大家需要知道,他的效率是比较低的,所以要慎用)当然在基于java语言而产生的android中也是可以使用的,我们可以使用反射来获取一些系统并不开放,但是存在的类,从而调用他的一些方法,下面就简单的写一下,利用java反射来获取类和调用它的方法的实现。

//需要被反射调用的类的路径
string classname = "com.example.test.javareflect";class reflect = null;
try {  
 //通过路径来获取java类  
 reflect = class.forname(classname);  
 //实例化对应得类  
 object javareflect = reflect.newinstance();  
 if(null != javareflect) {    
  //反射出该class类中的stringtoup()方法 stringtoup是方法名,string.class是参数类型    
  method stringtoup = reflect.getdeclaredmethod("stringtoup", string.class);    
  //取消访问私有方法的合法性检查    
  stringtoup.setaccessible(true);    
 //调用stringtoup()方法,第一个参数表示对应的类,第二个是方法的参数 
  string str = (string) stringtoup.invoke(javareflect,"java reflect test");
  system.out.println("result:"+str); 
 }
}catch (exception e) {  
 e.printstacktrace();
}

我们来看一下,在stringtoup里面做了什么:

public string stringtoup(string str){  
 return str.touppercase();
}

其实就是一个对字符串转换成大写,然返回,好了我们来看一下输出结果:

01-02 08:09:11.959 6150-6150/com.zxf.alpha i/system.out: result:java reflect test

简直就是完美。

总结

好了,以上就是这篇文章的全部内容了,反射在android中的应用范围也很多,比如我们项目有多个module的时候,你想在module里面调用主的程序的一个方法你就可以这么干,也可以用反射来调用一些系统为公开的方法,但是效率不太高。希望本文的内容对大家学习或者使用java中的放射能有所帮助,如果有疑问大家可以留言交流。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网