当前位置: 首页 > 编程笔记 >

Java中反射的一个简单使用

林龙野
2023-03-14
本文向大家介绍Java中反射的一个简单使用,包括了Java中反射的一个简单使用的使用技巧和注意事项,需要的朋友参考一下

简介

首先介绍一些不太实用的解释: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中的放射能有所帮助,如果有疑问大家可以留言交流。

 类似资料:
  • 本文向大家介绍简单总结Java的反射机制的运用,包括了简单总结Java的反射机制的运用的使用技巧和注意事项,需要的朋友参考一下 Java 的反射机制是使其具有动态特性的非常关键的一种机制,也是在JavaBean 中广泛应用的一种特性。 简单来说,一个类或者一个对象是拥有下面几种属性的: Method,Constructor,Field,其大致结构类图如下: 我们现在用代码来说明问题: 首先,我们看

  • 问题内容: 我确定这个问题已经被一遍又一遍地询问了,但是由于某种原因,我仍然无法设法解决这个问题。 我想反序列化包含单个成员的JSON对象;字符串数组: 这是我要反序列化的类: 这是反序列化方法: 像这样的调用返回的初始化实例,但数组保持不变。 的结构有问题吗? 问题答案: 嗯,发布此消息后,我意识到我缺少以下属性的修饰: 现在工作正常。

  • 本文向大家介绍简单谈谈python的反射机制,包括了简单谈谈python的反射机制的使用技巧和注意事项,需要的朋友参考一下   对编程语言比较熟悉的朋友,应该知道“反射”这个机制。Python作为一门动态语言,当然不会缺少这一重要功能。然而,在网络上却很少见到有详细或者深刻的剖析论文。下面结合一个web路由的实例来阐述python的反射机制的使用场景和核心本质。 一、前言   在上面的代码中,我们

  • 我想动态调用jsoup中的一个方法。这里是我的用例,我实际上在jsoup中调用多个select dom方法来遍历内部, 我能实现同样的动态像, 我知道我们可以使用反射来实现,但不确定如何实现这种行为,因为模式字符串将是动态的,并且可能有n个dom选择器。 让我知道如果上面的动力是可能的。

  • 本文向大家介绍java中如何反射获取一个类,包括了java中如何反射获取一个类的使用技巧和注意事项,需要的朋友参考一下 反射说白了就是可以获得一个类的所有信息,主要包括方法和属性两部分。 1.获得方法包括获得方法的名称,方法的返回类型,方法的访问修饰符,以及通过反射执行这个方法。 2.获得属性包括属性的名称,类型,访问修饰符,以及这个属性的值。 这些获得都有相应的API提供操作。 代码如下: 以上

  • 一、概述 Java反射机制定义 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java 反射机制的功能 1.在运行时判断任意一个对象所属的类。 2.在运行时构造任意一个类的对象。 3.在运行时判断任意一个类所具有的成员变量和方法。 4