以类型安全的方式引用类的方法的任何实用方法?一个基本的例子是,如果我想创造类似下面的效用函数:Java中的类型安全方法反射
public Result validateField(Object data, String fieldName,
ValidationOptions options) { ... }
为了称呼它,我必须做的:
validateField(data, "phoneNumber", options);
这迫使我要么使用魔法字符串,或者在该字符串的某个地方声明一个常量。
我很确定没有办法用股票Java语言来解决这个问题,但是有没有一种(生产级)预编译器或替代编译器可以提供解决方法? (类似的AspectJ如何扩展Java语言)这将是很好做类似以下代替:
public Result validateField(Object data, Method method,
ValidationOptions options) { ... }
里调用:
validateField(data, Person.phoneNumber.getter, options);
这是一种常见抱怨反思 - 并且尽可能避免它的一个很好的理由。作为一个必须在我工作的项目中做很多反思的人,我感到你的痛苦。 – aperkins 2010-01-05 23:12:22
我认为'类型安全'这个词有些不对。使用reflection @ java是类型安全的(当涉及到运行时)。类型错误在编译期间不会弹出。 – 2010-01-06 02:18:05