gpt4 book ai didi

Scala 从 String 类名实例化对象

转载 作者:行者123 更新时间:2023-12-03 06:13:45 40 4
gpt4 key购买 nike

我有一个特征,Action,许多不同的类,${whatever}Action,都扩展了它。我想让负责实例化这些 Action 对象的类成为动态的,因为在传递带有名称的字符串之前,它不会知道它将构建哪个扩展对象。我希望它获取类的名称,然后基于该字符串构建对象。

我很难找到关于这个简单的反射(reflection)的简洁/最新的答案。我希望得到一些关于寻找地点或巧妙的方法的建议。

最佳答案

您可以按如下方式使用反射:

def actionBuilder(name: String): Action = {
val action = Class.forName("package." + name + "Action").getDeclaredConstructor().newInstance()
action.asInstanceOf[Action]
}

关于Scala 从 String 类名实例化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384370/

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