很多Java项目都使用反射.我想知道是否有一个java.lang.reflect更容易使用的反射库.
我们可以使用它:
Reflected object = new Reflected( new Object() {
String name="Oscar";
String lastName="Reyes";
String reverseName(){
return new StringBuilder(name+lastName)
.reverse()
.toString();
}
int nameLength() {
return (name+lastName).length();
}
});
String name = object.getString("name");
object.set("name", "Mr. Oscar");
String reversed = ( String ) object.exec("reverseName");
int count = ( Integer ) object.exec("nameLength");
Run Code Online (Sandbox Code Playgroud)
....
UnknownLibraryObject reflectionMadeEasy
= new UnknownLibraryObject( .... );// initialize with an object from somewhere
String someString = ( String ) reflectionMadeEasy.get("stringPropertyFromTheReflectedObject");
int someInteger = ( String ) reflectionMadeEady.execute("someMethodFromReflectedObject", 1,2,3 );// with args.
Run Code Online (Sandbox Code Playgroud)
每个使用反射的项目是从头开始还是已经有了库?
目前尚不清楚你想要做什么,但阿帕奇共享郎提供了许多方便实用工具类,使反射少一点麻烦,比如MethodUtils,FieldUtils和ConstructorUtils.这些通常提供单行来抽象出通常庞大的原始反射代码.
正如@Lauri指出的那样,Commons BeanUtils也可用,提供更多高级功能,例如在对象之间复制属性.
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |