scala – 在编译时获取类?
发布时间:2020-12-16 18:07:34 所属栏目:安全 来源:网络整理
导读:在 Java中,您可以编写: ClassSomeClass foo = SomeClass.class; 我正在玩Scala并想要更多:我希望在编译时获得一个Method(及其泛型类型),如下所示: val foo : Method[...] = SomeClass.class.someMethod 甚至: val foo : Method[...] = someObject.class.
在
Java中,您可以编写:
Class<SomeClass> foo = SomeClass.class; 我正在玩Scala并想要更多:我希望在编译时获得一个Method(及其泛型类型),如下所示: val foo : Method[...] = SomeClass.class.someMethod 甚至: val foo : Method[...] = someObject.class.someMethod 有没有办法在Scala中做这样的事情? 解决方法
或许,对于需要Method实例的Java库的互操作的唯一例外,在Scala中永远不需要执行此操作.
如果需要传递一个方法以便以后调用;然后部分应用它来创建一个FunctionN实例,通过一个名字参数传递它,或者在第一种情况下直接创建它作为第一类函数. 如果您需要反思方法,以便可以绕过私人可见性,也许是为了测试,那么您真的应该重构您的设计,以避免首先考虑可见性限制. 如果您正在探索Scala,并了解概念与java的比较.或者,如果你不幸遇到一个错误的互操作情况,那么SomeClass.class的等价结构就是classOf [SomeClass].希望你永远不需要它:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |