Comment append @SerialVersionUID à une classe anonyme?

Je souhaite traduire le code suivant de Java vers Scala:

Foo foo = new Foo() { private static final long serialVersionUID = 12345L; } 

La classe Foo est une classe abstraite.

À quoi ressemble le code équivalent dans Scala?

Il existe une annotation Scala pour l’ajout de l’ID . Mais il semble que vous ne pouvez pas appliquer cette solution aux classes internes anonymes. Cependant, selon la FAQ Scala :

Dans Scala, les valeurs privées évaluées en constante connues au moment de la compilation sont transformées en variables Java statiques finales privées. Cette fonctionnalité non documentée devrait faire l’affaire pour vous. Il suffit de vérifier l’implémentation des listes dans Scala (voir par exemple src / scala / List.java). Les deux classes :: et Nil ont un champ serialVersionUID de la forme suivante: private val serialVersionUID = numeric literal;

Le code

 object Ser extends Application { trait Foo { def xy: Int } val x = new Foo with java.io.Serializable { def xy = 2; private val serialVersionUID = 1L } } 

comstack bien avec le compilateur 2.8.1. Je ne l’ai pas testée, mais la version en série de la classe résultante est-elle celle fournie?