首页 > 编程知识 正文

数字化编程,java和kotlin区别

时间:2023-05-06 12:01:58 阅读:165622 作者:4083

1 .什么是元编程

元数据:描述数据的数据。

元编程:操作元数据的编程。

程序是数据。 访问描述程序的数据。 例如,通过反射获取类型信息。

数据是程序。 是将这些数据转换成对应程序的所谓代码生成。

总结:

元编程是操作元数据的编程。

元编程删除部分模板代码。

常见元编程技术:反射、宏、模板元编程、路径依赖型。

2.Kotlin和Java的反射

Kotlin的KClass和Java的Class可以看作是相同意义的类型,可以用. Java和. Kotlin的方法在KClass和Class之间相互变换。

Kotlin的KCallable和Java的AccessiableObject都可以理解为可调用的元素。 在Java中,构筑方法是独立的模式,而Kotlin则被统一作为KFunction来处理。

Kotlin的KProperty和Java的Field不太一样。 Kotlin的KProperty通常将整个对应的Getter和Setter指为一个KProperty,而Java的Filed通常只指字段本身。

3.Kotlin的KClass

属性或函数名称

意义

isCompanion

是否为伴生对象

isData

是否为数据类

已禁用

有贴纸类的吗

对象实例

对象实例

复合对象实例

伴随的对象实例

dclaredmemberextensionfunctions

函数扩展

dclaredmemberextensionproperties

扩展属性

memberExtensionFunctions

基类和超类扩展函数

memberExtensionProperties

此类和超类的扩展属性

starProjectedType

类属类型

4.Kotlin的KCallable

Kotlin将Class中的所有属性(Property、函数)和构造函数都视为KCallable。 因为他们是可调用的,都是Class的成员。

API

说明

is abstract :布尔

这个KCallable是抽象的吗

is final :布尔

此KCallable是否为final

is open :布尔

这个KCallable是否是开放的

name:斯特灵

此KCallable的名称

参数:列表

调用此KCallable所需的参数

returnType:KType

此KCallable的返回类型

类型参数:列表

此KCallable的类型参数

可视化: kvisibility?

此KCallable的可见性

呼叫(vararg args : any )? ) : R

指定的参数调用此KCallable

5 .获取参数信息

函数参数: KParameter

API

说明

index:Int

返回参数列表中的索引

isoptin oal :布尔

此参数是否为选项

is vararg :布尔

此参数是否为Vararg

kind:Kind

此参数的kind

name :字符串?

此参数的名称

type:KType

此参数的类型

函数返回值: KType

API

说明

arguments :列表

此类型的类型参数

classifier:KClassifier?

类声明级类型。 类型参数将被忽略

ismarkednullable :布尔

该类型是否标记为可空类型

类型参数: KTypeParameter

6.Kotlin评论

创建注释: annotation class XXX

与Java一样,注释的参数只有常量,并且只支持以下类型:

Java对应的基本类型;

字符串;

类对象;

其他评论;

上述类型的数组。 请注意,必须将基本类型数组指定为对应的XXXArray,例如IntArray。

Kotlin和Java元注释:

Kotlin

Java

评论的目的

kotlin.annotation.Retention

java.lang.annotation.Retention

在哪里使用

kotlin.annotation.Target

java.lang.annotation.Target

文档

kotlin.annotation.Documented

Java.lang.annotation.documented

可重复

kotlin.annotation.Repeatable

Java.lang.annotation.repeatable

Kotlin目前不支持Inherited注释。

Retention值:

取值

说明

只存在于源代码中,编译后的class文件不包含注释信息

等级

此注释存在于class文件中,但无法发送并读取

运行时间

注释信息保存在class文件中,可在运行时通过反射获得

目标取值:

Kotlin

Java

说明

等级

类型

作用于班级

ANNOTATION_CLASS

ANNOTATION_TYPE

作用于注释本身,即元注释

TYPE_PARAMETER

TYPE_PARAMETER

作用于类型参数

属性

_

作用于属性

字段

字段

作用于字段(属性通常包含字段Getter和Setter )。

LOCAL_VARIABLE

LOCAL_VARIABLE

作用于局部变量

VALUE_PARAMETER

_

作用于val参数

构造器

构造器

作用于构造函数

函数

方法

作用于函数

属性_ getter

_

作用于Getter

属性_设置

_

作用于设置

类型

TYPE_USE

作用于类型

快速

_

式地起作用

文件

影响文件的开头/包声明

TYPEALIAS

_

作用于类型别名

构造函数:

注释具有接受参数的构造函数。 允许的参数类型如下:

与Java本机类型对应的类型;

字符串;

类65:3360class;

枚举;

其他评论;

上述类型的数组。

注释使用位置目标:

@file,@property,@field,@get,@set,@receiver,@param,@setparam,@delegate

7 .获取注释信息

通过反射获取注释信息

注释处理器

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。