【发布时间】:2010-11-24 11:20:13
【问题描述】:
你认为你是一个 java 向导吗?
您是否精通反射 API 的秘密?
public @interface @a {}
public @interface @b {}
@Mark public @interface @c {}
@Mark public @interface @d {}
public @interface @e {}
public Class C
{
@a @b @c @d @e public void x();
}
public class Solver
{
public Annotation[] solve(Method m, Class c);
}
您必须编写方法solve,这样如果在方法C.x() 和Mark.class 上调用它,它就会返回{c, d}。
(这不是家庭作业,是我正在尝试开发的框架元编程框架的真正编程作业)
【问题讨论】:
-
你认为我会因为你暗示我是(不是)巫师而为你的作业编写代码而绊倒吗?
-
另外,Meta 是谋杀:codinghorror.com/blog/archives/001282.html
-
我是一个java向导,这对我来说太琐碎了,所以我只是对你嗤之以鼻。
-
这里唯一令人费解的是为什么你认为这是一个难题。
-
你尝试了什么?发生了什么?什么是默认保留政策?
标签: java metaprogramming puzzle annotations