38 votes

En Scala, quelle est la différence entre Any et Object ?

Supposons que j'aie la méthode Java suivante

protected void onEvent(Object obj) {

    }

Le compilateur Scala accepte

protected override def onEvent(event: Any)

et

protected override def onEvent(event: Object)

Y a-t-il une différence entre les deux ?

26voto

Ernest Friedman-Hill Points 56605

Any comprend des choses qui ne sont pas Object en Java ; il comprend des types primitifs et aussi des Nothing . Object est la même classe qu'en Java, ce qui exclut définitivement les primitives.

25voto

4e6 Points 5970

Il existe un article sur scala-lang avec un excellent diagramme (je l'ai même accroché au mur). Et il faut aussi le mentionner :

Si Scala est utilisé dans le contexte d'un environnement d'exécution Java, scala.AnyRef correspond à java.lang.Object.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X