2011-04-22 3 views
4

... et pourquoi the package ce nom trompeur (j'ai supposé qu'il avait quelque chose à voir avec JavaME ou téléphones mobiles/smart)?Que doit faire scala.mobile?

Je trouve aucune référence sur Internet à propos de scala.mobile.Code ou scala.mobile.Locationdu tout et je ne ai réussi à faire quoi que ce soit avec ces classes, sauf se ClassCastExcetion s ou NoSuchMethodError s.

En fait, il n'y a même pas un seul test contre scala.mobile dans l'arborescence de test de Scala qui pourrait aider à comprendre ce code.

Les classes ont vraiment l'impression d'avoir été oubliées dans l'arborescence des sources il y a longtemps et sont sorties accidentellement depuis. Peut-être que j'ai juste manqué quelque chose à leur sujet?

Mise à jour: scala.mobile a été retiré à Scala 2.9.

Répondre

4

Je viens de vérifier le code source.

Lorsque Scala a modifié le nom des fichiers de classe il y a quelques années, il semble que les utilisateurs aient oublié de mettre à jour ces classes en conséquence.

Donc, ma réponse serait la suivante:

Au moins Location a aucun but, car il est impossible d'obtenir quelque chose de sensé sortir (sauf exceptions) et Code sans Location est sévèrement limitée. Il fonctionne bien si vous passez la classe littérale Code directement:

import scala.mobile._ 

val c = new Code(classOf[scala.collection.mutable.StringBuilder]) 
c.apply[StringBuilder, String]("append")("Foo") 
c.apply[String]("toString")() // returns "Foo" 
c.apply[Int]("length")()   // returns 3 

On dirait encore une autre mise en œuvre, dans la bibliothèque standard de réflexion légèrement plus agréable.

3

La description de Location joli explique bien ce qui est sur:

La classe Location fournit une méthode de création d'objets instancier à partir d'un emplacement réseau en spécifiant l'adresse URL du fichier jar/classe.

Il peut être utilisé par des acteurs distants. Peut être.

Quant à savoir pourquoi il a ce nom trompeur? Eh bien, en 2004, les téléphones intelligents avaient une pénétration très faible, alors peut-être que l'association n'était pas très forte.

+0

Oui, j'ai lu la description, mais en regardant le code je me demande sérieusement si ça marche plus du tout. Le paquet n'est ni utilisé dans Scala ni ailleurs sur le web, il semble. Pas surprenant pour deux classes qui répondent avec des exceptions à tout apparemment. – soc

Questions connexes