Created
          December 13, 2010 04:17 
        
      - 
      
- 
        Save yuroyoro/738648 to your computer and use it in GitHub Desktop. 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | 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