当当网的羊毛被网友薅惨了!这一次到底又被薅了多少?
Elasticsearch用得好,下班下得早! 全网最细!PyCharm 安装+破解详细使用指南
为什么阿里巴巴要禁用 Executors 创建线程池?
在看|星标|留言, 真爱
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 不允许数据类继承的原因。
扫码加我微信进群,内推和技术交流,大佬们零距离