Skip to content

Instantly share code, notes, and snippets.

@yuroyoro
Created December 13, 2010 04:17
Show Gist options
  • Save yuroyoro/738648 to your computer and use it in GitHub Desktop.
Save yuroyoro/738648 to your computer and use it in GitHub Desktop.
scala> import java.util.{Map => JMap, HashMap => JHashMap}
import java.util.{Map=>JMap, HashMap=>JHashMap}
scala> import java.io.Serializable
import java.io.Serializable
scala> type SerializableMap[A,B] = JMap[A,B] with Serializable
defined type alias SerializableMap
scala> def process[A,B]( key:A,value:B,m:SerializableMap[A,B]) = {
| m.put(key,value)
| m
| }
process: [A,B](key: A,value: B,m: SerializableMap[A,B])SerializableMap[A,B]
scala> class MySerializableMap[A,B] extends JHashMap[A,B] with Serializable
defined class MySerializableMap
scala> val sm:SerializableMap[String,Int] = new MySerializableMap[String,Int]
sm: SerializableMap[String,Int] = {}
scala> process("foo",1,sm)
res1: SerializableMap[String,Int] = {foo=1}
scala> def process2[A,B]( key:A,value:B,m:JMap[A,B] with Serializable) = {
| m.put(key,value)
| m
| }
process2: [A,B](key: A,value: B,m: java.util.Map[A,B] with java.io.Serializable)java.util.Map[A,B] with java.io.Serializable
scala> process2("bar",2,sm)
res3: java.util.Map[String,Int] with java.io.Serializable = {foo=1, bar=2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment