| class SomeServiceUsage { |
| |
| val service: SomeService |
| get() = SomeService.getInstanceNotNull() |
| |
| val serviceNullable: SomeService? |
| get() = SomeService.getInstanceNullable() |
| |
| // elvis |
| val serviceNotNullByDataFlow: SomeService |
| get() { |
| val s = SomeService.getInstanceNullable() |
| return s ?: SomeService.getInstanceNotNull() |
| } |
| |
| // nullable, bang-bang |
| fun aString1(): String? { |
| return serviceNullable!!.nullableString() |
| } |
| |
| // nullable |
| fun aString2(): String? { |
| return service.nullableString() |
| } |
| |
| // not nullable |
| fun aString3(): String { |
| return service.notNullString() |
| } |
| |
| // nullable, no bang-bang |
| fun aString4(): String? { |
| return serviceNotNullByDataFlow.nullableString() |
| } |
| |
| // not nullable, no bang-bang |
| fun aString5(): String { |
| return serviceNotNullByDataFlow.notNullString() |
| } |
| |
| // nullable, safe-call |
| fun aString6(): String? { |
| val s = serviceNullable |
| return s?.nullableString() |
| } |
| |
| } |