Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Scala Play中获取局部变量名!Mailer()返回空值?_Java_Scala_Playframework_Local Variables - Fatal编程技术网

Java 在Scala Play中获取局部变量名!Mailer()返回空值?

Java 在Scala Play中获取局部变量名!Mailer()返回空值?,java,scala,playframework,local-variables,Java,Scala,Playframework,Local Variables,我有一个应用程序正在使用这个游戏!框架我正在将变量绑定到模板,并建立在可能成为游戏救命符的基础上!: 传入的示例对象的输出: List(public java.lang.String models.Account.name(), public static final scala.Op tion models.Account.get(long), public boolean models.Account.equals(java.lang.Ob... 你知道如何进一步过滤吗 第二次编辑 到目前

我有一个应用程序正在使用这个游戏!框架我正在将变量绑定到模板,并建立在可能成为游戏救命符的基础上!:

传入的示例对象的输出:

List(public java.lang.String models.Account.name(), public static final scala.Op
tion models.Account.get(long), public boolean models.Account.equals(java.lang.Ob...
你知道如何进一步过滤吗

第二次编辑 到目前为止,我已经成功地生成了每个对象及其属性的列表,但不幸的是,它仍然会在填充的列表中触发相同的错误:

val oname = o.getClass.getName.replaceAll("models.","").toLowerCase
val names = o.getClass.getDeclaredFields.toList.map(_.getName.toString).map(oname+"."+_)
给出:

List(account.id, account.name, account.address,...

任何关于剧中哪里出了问题的见解!模板化?

在编辑2中,我能够获得传入的每个对象的属性名。然而,我遇到的问题实际上是由类本身引起的,所以我修改了一些东西来修复它。我创造了这个:

for ((name:String, o:Object) <- args) {
  templateHtmlBinding += (name -> o)
  templateTextBinding += (name -> o)
}
和模板中的引用,如:

${account.name}

getClass.getFields
将为您获取该类的所有公共变量的名称
getclass.getDeclaredFields
将为您获取类public和non.interest的所有变量的名称,这将返回所有相关数据。我必须找到一个scala列表方法来提取额外的东西,比如“private final long”等等。谢谢!后续操作:
getName
自行获取字段名,很快我就会得到答案。
for ((name:String, o:Object) <- args) {
  templateHtmlBinding += (name -> o)
  templateTextBinding += (name -> o)
}
for (o <- args) {
      var names = LocalVariablesNamesTracer.getAllLocalVariableNames(o).toList
      for (name <- names) {
        templateHtmlBinding += (name -> o)
        templateTextBinding += (name -> o)
      }
    }
mail.send("app/views/Mails/invite", "account"->account, "user"->user )
${account.name}