{"id":159784,"date":"2019-08-28T03:13:00","date_gmt":"2019-08-27T19:13:00","guid":{"rendered":"http:\/\/itteacheritfreelance.hk\/test\/wordpress\/?guid=84042728927369e424added9fc172807"},"modified":"2019-08-28T03:13:00","modified_gmt":"2019-08-27T19:13:00","slug":"kotlin-1-4-to-improve-null-check-capabilities-2","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/08\/28\/kotlin-1-4-to-improve-null-check-capabilities-2\/","title":{"rendered":"Kotlin 1.4 to improve null-check capabilities"},"content":{"rendered":"<article>\n<section class=\"page\">\n<p><a href=\"https:\/\/www.infoworld.com\/article\/3224868\/what-is-kotlin-the-java-alternative-explained.html\">Kotlin<\/a> 1.4, a planned upgrade to the statically typed JVM language created by JetBrains, is set to add null-check optimizations.<\/p>\n<p>Starting with the Kotlin 1.4 release, all runtime checks will throw a <code>java.lang.NullPointerException<\/code> instead of a <code>KotlinNullPointerException<\/code>, <code>IllegalStateException<\/code>, <code>IllegalArgumentException<\/code>, and <code>TypeCastException<\/code>.\u00a0<\/p>\n<aside class=\"fakesidebar\"><strong>[ <a href=\"https:\/\/www.infoworld.com\/article\/3224868\/java\/what-is-kotlin-the-java-alternative-explained.html\">What is Kotlin? The Java alternative explained<\/a>. \u2022 Tutorial: <a href=\"https:\/\/www.infoworld.com\/article\/3281125\/application-development\/kotlin-tutorial-get-started-with-kotlin.html\">Get started with Kotlin<\/a>. \u2022 <a href=\"https:\/\/www.javaworld.com\/article\/3396141\/why-kotlin-eight-features-that-could-convince-java-developers-to-switch.html\">Why Kotlin? Eight features that could convince Java developers to switch<\/a> \u2022 <a href=\"https:\/\/www.infoworld.com\/article\/3236419\/kotlin-frameworks-a-survey-of-jvm-development-tools.html\">Kotlin frameworks: A survey of JVM development tools<\/a>. | Keep up with hot topics in programming with InfoWorld\u2019s <a href=\"https:\/\/www.infoworld.com\/newsletters\/signup.html\">App Dev Report newsletter<\/a>. ]<\/strong><\/aside>\n<p>The change is designed to open up more possibilities for null check optimizations by the Kotlin <a href=\"http:\/\/itteacheritfreelance.hk\/index.php\" title=\"\u672c\u7db1\u9801\u63d0\u4f9b\u4e00\u500b\u65b9\u4fbf\u7684\u5e73\u53f0, \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b , PHP\u88dc\u7fd2, HTML\u88dc\u7fd2, CSS\u88dc\u7fd2, JavaScript\u88dc\u7fd2, XML, Java\u88dc\u7fd2,Server\u88dc\u7fd2, MySQL\u88dc\u7fd2, \u4e2d\u5b78\u96fb\u8166\u79d1\u79c1\u4eba\u88dc\u7fd2, \u5728\u8077\u4eba\u58eb\u96fb\u8166\u63d0\u5347\u88dc\u7fd2,\u5c08\u696d\u8003\u8a66\u96fb\u8166 \u88dc\u7fd2,\u96fb\u8166\u5716\u50cf\u8a2d\u8a08\u96fb\u8166\u88dc\u7fd2, gra\">compiler<\/a> or bytecode processing tools such as the Android R8 optimizer. It will apply to the <code>!!<\/code> operator, parameter full checks in the method preamble, the <code>as<\/code> operator with a non-null type, and platform-typed expression null checks. The change will not apply to <code>lateinit<\/code> null checks and explicit library calls such as <code>checkNotNull<\/code> or <code>requireNotNull<\/code>.<\/p>\n<p class=\"jumpTag\"><a href=\"https:\/\/www.javaworld.com\/article\/3434789\/kotlin-14-to-improve-null-check-capabilities.html#jump\">To read this article in full, please click here<\/a><\/p>\n<\/section>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<article>\n<section>\n<p><a href=\"https:\/\/www.infoworld.com\/article\/3224868\/what-is-kotlin-the-java-alternative-explained.html\">Kotlin<\/a> 1.4, a planned upgrade to the statically typed JVM language created by JetBrains, is set to add null-check optimizations.<\/p>\n<p>Starting with the Kotlin 1.4 release, all runtime checks will throw a <code>java.lang.NullPointerException<\/code> instead of a <code>KotlinNullPointerException<\/code>, <code>IllegalStateException<\/code>, <code>IllegalArgumentException<\/code>, and <code>TypeCastException<\/code>.&nbsp;<\/p>\n<aside><strong>[ <a href=\"https:\/\/www.infoworld.com\/article\/3224868\/java\/what-is-kotlin-the-java-alternative-explained.html\">What is Kotlin? The Java alternative explained<\/a>. &bull; Tutorial: <a href=\"https:\/\/www.infoworld.com\/article\/3281125\/application-development\/kotlin-tutorial-get-started-with-kotlin.html\">Get started with Kotlin<\/a>. &bull; <a href=\"https:\/\/www.javaworld.com\/article\/3396141\/why-kotlin-eight-features-that-could-convince-java-developers-to-switch.html\">Why Kotlin? Eight features that could convince Java developers to switch<\/a> &bull; <a href=\"https:\/\/www.infoworld.com\/article\/3236419\/kotlin-frameworks-a-survey-of-jvm-development-tools.html\">Kotlin frameworks: A survey of JVM development tools<\/a>. | Keep up with hot topics in programming with InfoWorld&rsquo;s <a href=\"https:\/\/www.infoworld.com\/newsletters\/signup.html\">App Dev Report newsletter<\/a>. ]<\/strong><\/aside>\n<p>The change is designed to open up more possibilities for null check optimizations by the Kotlin compiler or bytecode processing tools such as the Android R8 optimizer. It will apply to the <code>!!<\/code> operator, parameter full checks in the method preamble, the <code>as<\/code> operator with a non-null type, and platform-typed expression null checks. The change will not apply to <code>lateinit<\/code> null checks and explicit library calls such as <code>checkNotNull<\/code> or <code>requireNotNull<\/code>.<\/p>\n<p><a href=\"https:\/\/www.javaworld.com\/article\/3434789\/kotlin-14-to-improve-null-check-capabilities.html#jump\">To read this article in full, please click here<\/a><\/p>\n<\/section>\n<\/article>\n<p> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/08\/28\/kotlin-1-4-to-improve-null-check-capabilities-2\/\">\u95b1\u8b80\u5168\u6587 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":134,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"slim_seo":[],"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[2,315,7],"tags":[398,402,397,414,413,410,409,407,408,406,399,400,394,318,558,560,555,561,566,553,554,586,585,563,562,567,524,232,10,401,396,381,403,412,411,395,405,404,457,454,320,319,316],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7prtj-Fza","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/159784"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/users\/134"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/comments?post=159784"}],"version-history":[{"count":0,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/159784\/revisions"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=159784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=159784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=159784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}