Java的Foo.class以及Scala的classOf[Foo]文字类语法都会返回有关相关类的反射视图。
提供像.method/.field或methodOf[]/fieldOf[]这样的东西来获得对方法和字段的类似反射访问是否可能,以及是否有意义?
这样的事情如何在Java/Scala中实现呢?
在Java中,我假设这要么需要更改语言(不太可能),要么需要使用字节码工具/AspectJ的一些技巧,而在Scala中,可能可以使用隐式转换来实现它。
发布于 2011-09-14 07:41:47
是也不是。Paul Phillips肯定表达了对这样的事情的兴趣,围绕即将到来的scala反射,目前正在进行大量的工作。
不过,我们是否会看到任何与您提出的语法类似的内容都是值得怀疑的。方法不是一级构造,因此只能通过它们包含的类来引用。但是我们将获得一种很好的scala友好的方式来通过反射访问成员,包括默认参数、参数名称等。
发布于 2011-09-14 09:52:19
我不记得在哪里,但我最近偶然发现了一个Java库,它将Java类作为输入并生成一个元类,可以说,它具有静态字段(我认为),这些静态字段引用了目标类上的所有字段和方法。它当然不像你想要的那样优雅,但它给我的印象是一个潜在的有用的魔法。
https://stackoverflow.com/questions/7409702
复制相似问题