反射对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
英文原文链接
分享到:
相关推荐
Java反射为程序提供了一种强大的动态性,让我们可以在运行时了解和操作类的信息。然而,由于反射操作可能会破坏封装性,因此在实际开发中应谨慎使用,避免引入安全风险和性能问题。学习并理解反射机制,可以帮助我们...
Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Spring框架中,反射扮演着核心角色,...希望这个简单的反射例子能帮助你更好地理解和运用Java反射。
以下是一个简单的Java反射示例,展示了如何使用反射来获取类的信息: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { try { Class c = Class.for...
Java反射是Java编程语言中的一个强大特性,它允许运行时检查类、接口、字段和方法的信息,甚至可以动态地创建对象并调用其方法。在Java中,`java.lang.reflect`包提供了对反射的支持,包括`Class`、`Constructor`、`...
### 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 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反射机制,我们可以在运行时获取类的信息,包括类的成员变量、方法、构造方法等,并可以动态...
几个小demo,介绍了反射的几个api操作,最后写了一个简单的Java反射应用:工厂+反射+配置文件。
Java反射是Java编程语言中的一个重要特性,它允许程序在...学习这个示例,你可以更好地掌握Java反射机制,如何实例化对象,调用方法以及访问字段。通过实践,你将能够灵活地应用反射到实际项目中,解决动态编程的需求。
Java 反射机制简单理解 Java 反射机制是一种强大的机制,它允许程序在运行时检查和修改自身的结构和行为。Java 反射机制简单理解,非常容易理解的 ...掌握 Java 反射机制可以帮助开发者更好地理解和使用 Java 语言。
以下是一个简单的示例,展示了如何使用反射获取类的方法: ```java import java.lang.reflect.*; public class ReflectionExample { public static void main(String[] args) { try { Class<?> clazz = Class....
Java反射和工厂模式是两种非常重要的编程概念,它们在软件设计和实现中起着关键作用。反射机制允许我们在运行时动态地获取类的信息并操作对象,而工厂模式是一种设计模式,它提供了一种创建对象的最佳方式,使得代码...
Java反射是Java编程语言中的一个重要特性,它允许运行时的程序访问、操作和修改自身的行为。这个特性使得Java具有了动态性,可以实现元编程,即在程序运行时检查类的信息,创建和调用对象的方法,甚至修改类的结构。...
下面将详细介绍Java反射的基本概念和如何通过一个简单的`ReflectTest`代码示例来理解其工作原理。 首先,了解几个关键的Java反射API类: 1. `Class`:代表Java类的运行时信息。我们可以通过`Class.forName()`或...
Java反射是Java编程语言中的一个重要特性,它允许运行时的程序动态地获取类的信息并操作类的对象。在Java中,反射API提供了对类、接口、...在“简单的java反射dome”项目中,你可以通过实践进一步理解和运用这些概念。
通过8个demo,你可以逐步深入理解Java反射机制,从简单的获取类信息,到创建对象,调用方法,访问字段,再到处理注解和泛型,全方位掌握这一强大的工具。每个demo都应该设计为解决一个特定的问题,例如如何动态调用...
java反射简单机制,可以参考,写的比较简单,通过Class静态类加载指定的类并得到其属性,构造方法和普通方法等。