私はそうのようなNULL可能な特性を持っている豆の束がありますNullable型をNullable型に変換しないでください。
package myapp.mybeans;
data class Foo(val name : String?);
をそして、私はそうのようなグローバル空間内のメソッドを持っています。
package myapp.global;
public fun makeNewBar(name : String) : Bar
{
...
}
そしてどこか、私が行う必要がありますFoo
の中のものからのBar
だから、私はこれを行う:
package myapp.someplaceElse;
public fun getFoo() : Foo? { }
...
val foo : Foo? = getFoo();
if (foo == null) { ... return; }
// I know foo isn't null and *I know* that foo.name isn't null
// but I understand that the compiler doesn't.
// How do I convert String? to String here? if I do not want
// to change the definition of the parameters makeNewBar takes?
val bar : Bar = makeNewBar(foo.name);
、あらゆる小さい事でそれを毎回清めるためにfoo.name
で、ここでいくつかの変換を行って、一方では私のコンパイル時の保証と安全性を提供しながら、それが最も大きな邪魔されます時間のこれらのシナリオを回避するための短所はありますか?
コンパイラは、条件ブロック内にある場合にのみ、 'foo!=' nullを証明すると信じています。 – Actorclavilis
[Kotlinでは、null値を扱う慣習的な方法は、参照または変換するものです](http: /stackoverflow.com/questions/34498562/in-kotlin-what-is-the-idiomatic-way-to-deal-with-nullable-values-referencing-o) –