Junior — Middle
Чӣ гуна мувофиқати арзишҳои null байни Java ва Kotlin таъмин карда мешавад?
sobes.tech AI
Ҷавоб аз AI
Масъулияти арзиши null байни Java ва Kotlin бо сабаби системаи намудҳои Kotlin таъмин карда мешавад, ки равшан байни намудҳои nullable ва non-nullable фарқ мекунад.
- Дар Kotlin намудҳо ба таври пешфарз non-nullable мебошанд, масалан,
Stringнаметавонадnullқабул кунад. - Барои тағйирёбандаҳое, ки метавонанд
nullбошанд, намудҳои nullable бо?истифода мешаванд, масалан,String?.
Ҳангоми муошират бо коди Java, Kotlin аз аннотатсияҳо (масалан, @Nullable, @NotNull) барои муайян кардани nullability истифода мебарад. Агар ин аннотатсияҳо набошанд, Kotlin намудҳоро ҳамчун намудҳои платформа ҳисоб мекунад, ва таҳиягар бояд бо эҳтимолии null мустақиман кор кунад.
Масалан:
// Методи Java
public String getName() { return null; }
// Kotlin
val name: String? = javaObject.name // nullable, зеро Java метавонад null баргардонад
// Барои пешгирӣ аз хатоҳо, Kotlin талаб мекунад, ки пеш аз истифодаи null санҷиш гузаронида шавад
if (name != null) {
println(name.length)
}
Бинобар ин, Kotlin кӯмак мекунад, ки бо null аз Java бехатар кор кунед, ва хавфи NullPointerException-ро кам мекунад.