kotlin-反射

kotlin-反射,第1张

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。

常用API

使用demo

Kotlin 的反射需要集成 orgjetbrainskotlin:kotlin-reflect 仓库,版本保持与 kotlin 一致

在Kotlin中,字节码对应的类是kotlinreflectKClass,因为Kotlin百分之百兼容Java,所以Kotlin中可以使用Java中的反射,但是由于Kotlin中字节码class对应的是KClass类,所以如果想要使用Java中的反射,需要首先获取Class的实例,在Kotlin中可以通过以下两种方式来获取Class实例。

获取了Class实例,就可以调用上面介绍的方法,获取各种在Java中定义的类的信息了。

当然Kotlin中除了可以使用Java中的反射以外,还可以使用Kotlin中声明的一些方法,当然同Java中反射一样,想要使用这些方法,先要获取Kclass对象,在Kotlin中可以通过以下两种方式获取Kclass实例。

常用API

使用demo

详细demo跳转此处观看

>

Kotlin的优势

因此,您可能需要考虑切换到设计为在JVM上运行的许多现代编程语言之一。尽管编译为Java字节码的语言不乏,但有一些因素使Kotlin脱颖而出:

与Java的互换性

Kotlin作为Java的潜在替代品的最大优势之一是Java和Kotlin之间的互 *** 作性水平 - 您甚至可以在同一个项目中并行存在Java和Kotlin代码,并且所有内容仍将完美编译。下面,您可以看到由Java Activity和Kotlin Activity组成的项目示例。

事实上,一旦你的混合的Kotlin和Java项目被编译,用户将无法知道您的项目的哪些部分是用Java编写的,哪些部分是用Kotlin编写的。

由于Kotlin和Java类可以并行存在于同一个项目中,所以您可以开始使用Kotlin,而无需像Kotlin一样将整个项目转换为Kotlin,或者专门开始一个新项目,以便您可以在Kotlin尝试您的手。

由于这种互 *** 作性水平,如果您有一个您已经开始工作的项目,您可以在该项目的一小部分中试用Kotlin,而不会影响其余的代码库。而且,如果您确定要继续使用Kotlin,则可以将项目现有的Java代码一次迁移到Kotlin一个文件,也可以将项目的旧Java代码保持原样,并且只能使用Kotlin来实现新的类和功能。

由于Kotlin可以与Java完全互 *** 作,您还可以使用Kotlin项目中的大多数Java库和框架,甚至依赖于注释处理的高级框架。

简单学习曲线

Kotlin旨在加强Java,而不是完全重写,所以您在Java职业生涯中获得和磨练的许多技能仍然适用于您的Kotlin项目。

Kotlin也被设计为Java开发人员有一个温和的学习曲线。 Java开发人员应该发现,Kotlin的大部分语法都很熟悉;例如,用于在Kotlin中创建一个新类的代码与Java非常相似:

1

class

MainActivity : AppCompatActivity() {

Kotlin也被设计为直观易读,所以即使你遇到一些截然不同的代码,你仍然可以得到这个代码的作用。

结合最好的功能和程序编程

目前有一些广泛使用的编程范例,但是当涉及到“哪种方法是最好的”的时候,没有简单的答案。每个编程范例都有自己的优点和缺点,因此尽管功能编程有优势的场景不乏,但程序方法更有效的问题也很多。

那么为什么要在功能和程序之间选择呢?像许多现代编程语言一样,Kotlin旨在通过结合程序和功能编程的概念和元素,为您带来最好的两个世界。

一流的Android Studio支持

Kotlin是由JetBrains开发的,该公司是Android Studio所基于的IntelliJ-IDE的公司。那么,Android Studio对Kotlin有很好的支持并不奇怪。一旦您安装了Kotlin插件,Android Studio就可以在您的项目中配置Kotlin,就像打开几个菜单一样简单。

一旦您为Android Studio设置了Kotlin插件,您的IDE将无需理解,编译和运行Kotlin代码。 Android Studio还为Kotlin提供调试,自动完成,代码导航,单元测试和完全重构支持。

一旦您的Android Studio项目配置为支持Kotlin,您甚至可以将整个Java源文件转换为Kotlin文件,只需点击几下鼠标。

更简洁的代码

如果比较产生相同结果的Java类和Kotlin类,则写入Kotlin的类通常比使用Java编写的一样简洁和紧凑。 而且每个开发者都知道,代码减少意味着更少的错误!

有什么收获?

没有编程语言是完美的,所以虽然Kotlin有很多提供Android开发人员,但您需要注意一些缺点:

额外的运行时大小

Kotlin标准库和运行时将增加您的apk的大小。虽然这只相当于大约800KB,如果您的应用程序已经在很大的一边,那么额外的800KB可能会提示它在边缘,并让用户在下载你的应用程序之前思考两次。

代码的初始可读性

虽然Kotlin的简洁语法是语言最大的优点之一,但是最初可能会发现一些Kotlin很难解读,因为在这么少的代码中有很多事情要做。 Java可能更冗长,但是上面的一切都是明确的,这意味着不熟悉的Java代码比不熟悉的Kotlin更容易破译。

另外,如果使用不当,Kotlin的 *** 作员重载会导致难以阅读的代码。

缺乏官方支持

Kotlin可能在Android Studio中有很好的支持,但值得一提的是,Kotlin没有得到Google的正式认可。

此外,与纯Java项目相比,当您使用Kotlin时,Android Studio的自动完成和编译往往运行速度稍慢。

更小的社区和更少的可用帮助

由于Kotlin是一种相对较新的语言,所以Kotlin社区仍然相对较小,特别是与围绕更为成熟的Java语言的社区相比。如果您切换到Kotlin,那么您可能无法访问相同数量的教程,博客文章和用户文档,并且可能会在论坛和堆栈溢出等场合遇到较少的社区支持。在撰写本文时,在Stack Overflow上搜索Kotlin只返回标签为Kotlin的4,600个帖子,而包含Java标签的高达1,000,000个帖子。

kotlin 是一种语言。但是它是基于 JVM 的,需要编绎成 java 字节码在JVM 上运行(也可以编绎成 javascript)。
生成 jar 或 class 文件是因为需要放到 JVM 上去执行。

不可以,只能编译成JAVA。而且除非你只开发安卓。否则我会建议使用纯JAVA。而不要去考虑Kotlin。否则,你将失去两大优势。
首先要搞清楚,kotlin与JAVA之间,其实并没有任何关系。kotlin是那个做IDE的Jetbrains公司创造的语言,它只和intellij IDEA这个IDE有关系。只是这个IDE,会在编译的时候,把kotlin转换成JAVA代码。所以kotlin无形中,便把使用者与这个IDE捆绑在了一起。而并不是与JAVA捆绑在了一起。
失去的第一个优势,便是从此无法自由选择IDE。。。对于kotlin来讲,将永远只有一个IDE可以选择。用户会成为Jetbrains公司的奴隶。如果有一天,你必须离开这个IDE,那你将会沦为废物,因为如果没有IDEA,kotlin无法做到任何事,哪怕仅仅一个“hello world”都不能。
失去的第二个优势则更加致命,也是JAVA可以获得成功的原因之一。。。JAVA能做的事情,其实很多其他语言也能做到。。但为什么JAVA可以如此受欢迎?除了JAVA本身的强大之外,还有一个原因在于,JAVA与C#语言,几乎是一模一样的。只有非常细微的差别,不仅语法一样,而且连编程思想都一样。只要掌握其中一门,完全可以在几天之内,无师自通另外一门。然后就可以对照api文档,去开发另外一门语言的程序了。所以学习JAVA的一大亮点就在于“学一门,会两门”。
C#很了不起吗?没错,非常了不起。。它本就可以视作JAVA获得成功的最大幕后英雄。。但我不是来讲故事的,因此微软与sun公司的恩怨情仇不在此深究。
我只说三个关键点,你自然明白其中利害关系。
1,它是微软的官方编程语言,微软的亲儿子,天生的富二代,Visual Studio便是为它量身设计。并且是微软唯一可以跨平台的儿子。。微软前不久又为它专门设计了轻量开发工具VS code。。不远的未来,它将成为微软的独子。未来几年,微软几乎全部工作都将与它有关。
2,它是游戏开发行业的第一大编程语言。占有60%以上的份额。Unity3D,CE5,寒霜,夜光,这四大游戏引擎的标准语言。《口袋妖怪Go》《使命召唤》《FIFA》《极品飞车》《最终幻想14》等数以万计的游戏都是由它开发而成。还包括国内最火的手游《王者荣耀》
3,它是虚拟现实(VR)设备开发的第一大语言。
扔掉JAVA,改用kotlin,也就等于与C#分道扬镳。。。所付出的代价,在我看来是无与伦比的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13104117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存