`
deepinmind
  • 浏览: 450840 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
1dc14e59-7bdf-33ab-841a-02d087aed982
Java函数式编程
浏览量:41555
社区版块
存档分类
最新评论

让Java的反射更得简单

阅读更多

反射对Java开发人员来说是最强大的功能之一了。标准的Java API真的很难使用,尤其是搜索和查询某些特殊的方法的时候。

比如说,我最近在参与的一个项目,要取出一个类的所有返回string,不带参数的,且以to开头的public方法,写出来的代码大概像下面这样:


ArrayList<Method> results = new ArrayList<Method>();    
for (Method m : String.class.getDeclaredMethods()) {               
      if (Modifier.isPublic(m.getModifiers()) &&          
            m.getReturnType().equals(String.class) &&   
            m.getParameterCount() == 0 &&               
            m.getName().startsWith("to")) {             
            results.add(m);                                 
     }                                                   
}      
 



因此你可以想像一下,如果有比这还复杂的情况,这段代码最后会成什么样。我找了一遍后发现Reflections这个库可以让这样工作变得想当简单。同样的查询用它来写的话会是这样的:


Set<Method> results = getMethods(String.class,
      withModifier(Modifier.PUBLIC),
      withReturnType(String.class),    
      withParametersCount(0),
      withPrefix("to"));  




有个这个库还能进行一些更为复杂的查询。想了解关于它的更多信息的话,它的官方文档是个不错的选择。希望将来你考虑在Java中进行一些反射相关的操作的话会考虑使用一下这个库。

下下面有些相关的资料链接:

https://github.com/ronmamo/reflections
http://docs.oracle.com/javase/tutorial/reflect/   


原创文章转载请注明出处:http://it.deepinmind.com

英文原文链接
3
1
分享到:
评论
2 楼 deepinmind 2014-05-26  
shyboy0358 写道
LZ说的reflections库是JDK的标准库吗,还是第三方的啊


不是标准库,这是个第三方库~
1 楼 shyboy0358 2014-05-25  
LZ说的reflections库是JDK的标准库吗,还是第三方的啊

相关推荐

    Java反射简单例子

    Java反射为程序提供了一种强大的动态性,让我们可以在运行时了解和操作类的信息。然而,由于反射操作可能会破坏封装性,因此在实际开发中应谨慎使用,避免引入安全风险和性能问题。学习并理解反射机制,可以帮助我们...

    JAVA反射简单例子

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Spring框架中,反射扮演着核心角色,...希望这个简单的反射例子能帮助你更好地理解和运用Java反射。

    Java反射机制总结

    以下是一个简单的Java反射示例,展示了如何使用反射来获取类的信息: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { try { Class c = Class.for...

    java反射简单例子demo

    Java反射是Java编程语言中的一个强大特性,它允许运行时检查类、接口、字段和方法的信息,甚至可以动态地创建对象并调用其方法。在Java中,`java.lang.reflect`包提供了对反射的支持,包括`Class`、`Constructor`、`...

    Java反射简单小实例

    ### Java反射机制简介 Java反射机制是Java编程语言的一个强大特性,它允许程序在运行时检查自身,并且能够“看”到类的信息(字段、方法等),甚至可以在运行时调用这些方法或修改这些字段的值。这为开发带来了很大...

    java面试题--反射机制

    下面通过一个简单的示例展示如何使用Java反射机制: ```java import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflectionDemo { public ...

    反射实例-JAVA反射机制

    下面通过一个简单的示例来展示Java反射机制的工作流程: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { try { Class c = Class.forName(args[0])...

    JAVA反射机制的简单理解

    Java反射机制是Java语言提供的一种强大工具,它允许在程序运行时动态地获取类的信息以及对类的对象进行操作。在Java中,静态编译时类型检查确保了代码的稳定性,但有时我们需要在运行时根据需求动态地创建对象、调用...

    Java反射机制笔记(简单易懂)

    Java反射机制笔记 Java反射机制是Java语言中一个强大的功能,它允许程序在运行时检查和修改其自身的结构和行为。通过Java反射机制,我们可以在运行时获取类的信息,包括类的成员变量、方法、构造方法等,并可以动态...

    Java反射简单应用

    几个小demo,介绍了反射的几个api操作,最后写了一个简单的Java反射应用:工厂+反射+配置文件。

    java 反射实例,大量注释,简单易懂

    Java反射是Java编程语言中的一个重要特性,它允许程序在...学习这个示例,你可以更好地掌握Java反射机制,如何实例化对象,调用方法以及访问字段。通过实践,你将能够灵活地应用反射到实际项目中,解决动态编程的需求。

    java反射机制简单理解

    Java 反射机制简单理解 Java 反射机制是一种强大的机制,它允许程序在运行时检查和修改自身的结构和行为。Java 反射机制简单理解,非常容易理解的 ...掌握 Java 反射机制可以帮助开发者更好地理解和使用 Java 语言。

    反射实例-JAVA反射机制.doc

    以下是一个简单的示例,展示了如何使用反射获取类的方法: ```java import java.lang.reflect.*; public class ReflectionExample { public static void main(String[] args) { try { Class&lt;?&gt; clazz = Class....

    java 反射工厂模式

    Java反射和工厂模式是两种非常重要的编程概念,它们在软件设计和实现中起着关键作用。反射机制允许我们在运行时动态地获取类的信息并操作对象,而工厂模式是一种设计模式,它提供了一种创建对象的最佳方式,使得代码...

    java反射实例代码

    Java反射是Java编程语言中的一个重要特性,它允许运行时的程序访问、操作和修改自身的行为。这个特性使得Java具有了动态性,可以实现元编程,即在程序运行时检查类的信息,创建和调用对象的方法,甚至修改类的结构。...

    java反射的demo代码

    下面将详细介绍Java反射的基本概念和如何通过一个简单的`ReflectTest`代码示例来理解其工作原理。 首先,了解几个关键的Java反射API类: 1. `Class`:代表Java类的运行时信息。我们可以通过`Class.forName()`或...

    简单的java反射dome

    Java反射是Java编程语言中的一个重要特性,它允许运行时的程序动态地获取类的信息并操作类的对象。在Java中,反射API提供了对类、接口、...在“简单的java反射dome”项目中,你可以通过实践进一步理解和运用这些概念。

    一个例子让你了解Java反射机制

    通过8个demo,你可以逐步深入理解Java反射机制,从简单的获取类信息,到创建对象,调用方法,访问字段,再到处理注解和泛型,全方位掌握这一强大的工具。每个demo都应该设计为解决一个特定的问题,例如如何动态调用...

    java反射简单step

    java反射简单机制,可以参考,写的比较简单,通过Class静态类加载指定的类并得到其属性,构造方法和普通方法等。

Global site tag (gtag.js) - Google Analytics