Java playFramework中scala视图模板中的强制转换和实例
我正在PlayFramework2.2.6的scala视图中循环收集Java playFramework中scala视图模板中的强制转换和实例,java,scala,templates,view,playframework,Java,Scala,Templates,View,Playframework,我正在PlayFramework2.2.6的scala视图中循环收集Person。 Personclass是类User,Contact的超类 在循环时,我想访问一些为扩展类指定的参数,如User类中的email属性 以下是模型的类: public class Person { int id; String name; Date date; } public class User extends Person { String email; String login; St
Person
。
Person
class是类User
,Contact
的超类
在循环时,我想访问一些为扩展类指定的参数,如User
类中的email
属性
以下是模型的类:
public class Person {
int id;
String name;
Date date;
}
public class User extends Person {
String email;
String login;
String password;
}
public class Contact extends Person {
Address address;
}
public class Customer {
List<Person> persons;
// AND NOW I WOULD LIKE TO DO THIS IN SCALA TEMPLATE
public void print() {
for(Person person: this.persons) {
if(person instanceof User) {}
System.out.println(((User)person).email);
}
}
}
请在以下方面给我一些帮助:
- 如何将变量强制转换为指定类型
- 如何验证变量的类型/实例
谢谢。Scala/Twirl等效物应为: 要验证实例类型,请执行以下操作:
person.isInstanceOf[User] // bool?
铸造:
person.asInstanceOf[User] // User instance
Scala/Twirl等效值应为: 要验证实例类型,请执行以下操作:
person.isInstanceOf[User] // bool?
铸造:
person.asInstanceOf[User] // User instance
使用模式匹配:
@for(person <- persons) {
@person match {
case _ : User => {@{_.email}}
case _ => {@{}}
}
}
@for(person{{{.email}
案例{uu=>{@{}
}
}
如果您需要设置“如果接触类型”条件,这将看起来更干净。使用模式匹配:
@for(person <- persons) {
@person match {
case _ : User => {@{_.email}}
case _ => {@{}}
}
}
@for(person{{{.email}
案例{uu=>{@{}
}
}
如果你需要做一个“如果接触类型”的条件,这将看起来更干净