gpt4 book ai didi

java - 如何使用 Java 反射在 Scala 中调用字段访问器?

转载 作者:行者123 更新时间:2023-12-03 20:19:42 25 4
gpt4 key购买 nike

如果我有一个带有私有(private)字段和公共(public)访问器的小型 Scala 类:

class Entity {

private var _name:String = ""
def name:String = <some stuff>
def name_=(v:String) = <some stuff>
}

如何使用 Java 反射调用这些访问器?

该类可能是第 3 方代码,或者至少很难更改。请注意,使基础字段可访问将不允许我们调用访问器中的代码,这才是我真正想要的。

最佳答案

访问器只是名为 namename_$eq 的方法,因此您也可以在 Java 中执行此操作:

scala> val c = classOf[Entity]                                
c: java.lang.Class[Entity] = class Entity

scala> c.getDeclaredMethod("name_$eq", classOf[String])
res0: java.lang.reflect.Method = public void Entity.name_$eq(java.lang.String)

scala> c.getDeclaredMethod("name")
res1: java.lang.reflect.Method = public java.lang.String Entity.name()

关于java - 如何使用 Java 反射在 Scala 中调用字段访问器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com