为什么阿里巴巴要禁用 Executors 创建线程池?
为什么阿里巴巴这一次能扛得起 11 亿的流量?没有发生崩溃!
微软官宣:更新会导致Win10 运行变慢! Win10 2020 终极正式版即将推送,你敢升级吗?
点击“开发者技术前线”,选择“星标🔝”
让一部分开发者看到未来
https://medium.com/@afinlay/java-10-sneak-peek-local-variable-type-inference-var-3022016e1a2b
“嗨,Kotlin。我是新来的,我可以使用静态成员吗?"他问。 “不行。我是面向对象的,静态成员不是面向对象的。” Kotlin 回答。 “好吧,但我需要 MyClass 的 logger,我该怎么办?” “这个没问题,使用伴生对象即可。” “那是什么东西?” “这是局限到你的类的单独对象。把你的 logger 放在伴生对象中。”Kotlin解释说。 “我懂了。这样对吗?”
“正确!” “很详细的语法,”程序员看起来很疑惑,“但是没关系,现在我可以像 MyClass.logger 这样调用我的 logger,就像 Java 中的一个静态成员?” “嗯......是的,但它不是静态成员!这里只有对象。把它看作是已经实例化为单例的匿名内部类。事实上,这个类并不是匿名的,它的名字是 Companion,但你可以省略这个名字。看到了吗?这很简单。"
以上内容编译自 From Java to Kotlin and Back Again,作者 Kotlin ketckup。 他是一名具有15年以上专业经验的软件工程师,专注于JVM 。在 Allegro,他是一名开发团队负责人,JaVers 项目负责人,Spock 倡导者。此外,他还是 allegro.tech/blog 的主编。
有时候你必须使用静态。旧版本 public static void main() 仍然是启动 Java 应用程序的唯一方式。
如果你喜欢 Optional ,你可以使用它。Kotlin 在 JVM 上运行。
这个限制不是 Kotlin 的错。在 equals() 没有违反 Liskov 原则的情况下,没有办法产生正确的基于价值的数据。 这就是为什么 Kotlin 不允许数据类继承的原因。
扫码加我微信进群,内推和技术交流,大佬们零距离