gpt4 book ai didi

scala - 在 Scala 中动态创建案例类的新实例

转载 作者:行者123 更新时间:2023-12-04 15:24:06 24 4
gpt4 key购买 nike

给定对案例类伴随对象的引用 t和一系列参数 seq如何调用 case 类的新实例?

当我自己输入参数的编号时,我可以创建一个类。

scala> case class B(n:String,a:Int,b:Int)
defined class B

scala> val t:AnyRef = B
t: AnyRef = B

scala> val m = t.getClass.getMethods.filter{m => m.getName == "apply"}.
filterNot {_.getReturnType.getName == "java.lang.Object"}(0)
m: java.lang.reflect.Method = public B B$.apply(java.lang.String,int,int)

scala> m.invoke(t,"name",1:java.lang.Integer,2:java.lang.Integer)
res99: Object = B(name,1,2)

我无法解决的问题是使用诸如 Seq("name",1:java.lang.Integer,2:java.lang.Integer) 之类的参数序列调用 invoke .非常感谢任何帮助如何做到这一点。

我使用 Scala 2.10.0。

最佳答案

刚刚自己发现的(分别在这里看到过 https://stackoverflow.com/a/2060503/55070 )。它是

method.invoke(t,seq: _*)

有时把它写下来真的很有帮助;-)

关于scala - 在 Scala 中动态创建案例类的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15974876/

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