nullを返す可能性がある関数をOptionで受け取る場合、例えば

```

    val fuge=Option(nullablefunc())
    def twice(one:Option[Int])={
        one.map(2*)
    }
    val result=twice(fuge.asInstanceOf[Option[Int]])
    
```

Option(null)の場合、型がOption[Null]=NoneになるのでOption[Int]にするためキャストしてますけど

```

    fuge.asInstanceOf[Option[Int]]
    
```

Optionがnullを受け取る可能性がある場合、上記の方法以外にnullを受け取れる方法があるんでしょうか。？
CC BY-SA 3.0
2014-12-18T03:31:11.513
1969
2014-12-18T10:42:11.357
2014-12-18T08:36:27.580
30
4883
question
scala
nullを返す可能性のあるJava関数の返り値をOptionでラップする方法
`Option[Int]`型として、`null`あるいは`Int`を返すjavaの関数`nullablefunc()`の返り値を使いたいということでしたら、

```

    val fuge:Option[Int]=Option(nullablefunc())
    
```

のようにシグネチャを付ければ解決すると思います。
CC BY-SA 3.0
2014-12-18T06:15:21.283
1997
2014-12-18T06:15:21.283
2781
1969
answer
scala では Integer => Int 時にnullだとNullPointerExceptionを出すみたいです。

```

    scala> val x:java.lang.Integer = null
    x: Integer = null
    
    scala> val y:Int = x
    java.lang.NullPointerException
      at scala.Predef$.Integer2int(Predef.scala:357)
      ... 43 elided
    
```

なので上記のコードは

```

    val fuge = Option[Integer](nullablefunc()).map(Integer2int)
    def twice(one:Option[Int])={
        one.map(2*)
    }
    val result=twice(fuge)
    
```

のようにしないと NullPointerException が出てしまいますね
CC BY-SA 3.0
2014-12-18T10:42:11.357
2031
2014-12-18T10:42:11.357
3466
1969
answer