J'essaie de charger un tas d'objets com.mongodb.DBObject dans un Vaean BeanItemContainer à afficher dans une table. Je suis coincé sur la traduction du constructeur de Java à Scala.Comment exprimer un constructeur Vaadin BeanItemContainer dans Scala?
La définition du constructeur est:
BeanItemContainer(Class<? extends BT> type)
Ce passe le compilateur scala:
val bic = new BeanItemContainer(Class.forName("com.mongodb.DBObject"))
Cependant, lorsque je tente d'ajouter un élément:
mtl.toArray.foreach {t => bic.addBean(t)}
Je reçois le texte suivant erreur:
[ERROR]com/sentientswarm/traderdashboard/UploadTradesWindow.scala:140: error: type mismatch;
found : t.type (with underlying type com.mongodb.DBObject)
required: ?0 where type ?0
mtl.toArray.foreach {t => bic.addBean(t)}
Des idées/des suggestions?
MISE À JOUR:
Essayé:
val bic: BeanItemContainer[DBObject] = new BeanItemContainer(Class.forName("com.mongodb.DBObject"))
Résultat:
[ERROR]com/sentientswarm/traderdashboard/UploadTradesWindow.scala:140: error: type mismatch;
found : java.lang.Class[?0(in value bic)] where type ?0(in value bic)
required: java.lang.Class[_ <: com.mongodb.DBObject]
val bic: BeanItemContainer[DBObject] = new BeanItemContainer(Class.forName("com.mongodb.DBObject"))
^
Merci, John
Merci. J'ai oublié classOf. Je suis arrivé à la même conclusion, mais un peu plus simple. Vous pouvez simplement utiliser: val bic = new BeanItemContainer (classOf [DBObject]). Cela dit, DBObject n'aime pas qu'on lui dise que c'est un bean, alors j'ai fini par utiliser un IndexedContainer et le peupler manuellement. – jxstanford