我有以下情况。我的应用使用Trakt电视的API来获取有关电影的信息。没有将海报张贴到电影的直接链接,因此我自己构造了此链接:
"http://img.omdbapi.com/?apikey=[apikey]&i=${movieTrack.movie?.movieId?.imdb!!}"
此行:
movieTrack.movie?.movieId?.imdb!!
不是null,而是整个返回构造:
return Movie(
name = movieTrack.movie?.name!!,
year = movieTrack.movie?.year!!,
movieId = movieTrack.movie?.movieId!!,
watchers = movieTrack.watchersNumber,
iconUrl = "http://img.omdbapi.com/?apikey=[apikey]&i=${movieTrack.movie?.movieId?.imdb!!}"
)
返回一个对象,该对象具有可为空的图标URL。所以,我不明白这种情况如何发生。怎么了?
答案 0 :(得分:0)
Nullable不为null。可空值表示该值可以为空,这在您不允许某个空值的地方引用它时可能会导致问题。
这就是为什么您可以将东西声明为“不可为空”的原因,以断言该值永远不能为null,其他变量为可为空,这意味着它们可以包含null。
因此,结论:
可为空:可以为空。 (在做某些事情时要小心,可能会弄乱事情,但对大多数事情来说都是标准的)
不可为空:绝不能为空。 (但是您必须投入一些工作来断言它永远不会为空。)