# Android @JvmName() set get ## 介绍 在 Android 开发中,我们经常会使用 Kotlin 编程语言来编写应用程序。Kotlin 提供了许多方便的功能,其中之一是 `@JvmName()` 注解。`@JvmName()` 注解用于指定 JVM 中生成的函数或属性的名称,可以在编写 Kotlin 代码时使用不同的名称,而在 JVM 中使用其他名称。 在本文中
原创 2023-08-21 03:54:49
128阅读
JvmName注解是Kotlin提供的一个可以变更编译器输出的注解,这里简单的介绍一下其使用规则。应用在文件上未应用@JvmName12345678package com.example.jvmannotationsampleimport android.net.Urifun String.toUri(): Uri { return Uri.parse(th...
原创 2022-11-09 23:29:43
164阅读
kotlin掉用java代码 > @JvmField 和@JvmName的使用理解 假如在java中有以下代码: public abstract class Base { public abstract Integer getId(); } 下面使用kotlin来进行继承该抽象类,那么编辑器就会报以 ...
转载 2021-09-29 12:07:00
453阅读
2评论
1.@JvmName修改方法名直接看例子:@JvmName("testCopy") fun test(name: String, age: Int) { }直接反编译成java代码看下:最终生成的方法名称就是testCopy而不是test2.@get:JvmName、@set:JvmName修改属性名@get: JvmName("getSource") @set: JvmName(
目录注解:@file:JvmName注解:@JvmField注解:@JvmOverloads注解:@JvmStatic注解:@JvmMultifileClass注解:@JvmSynthetic注解:@file:JvmName@file:JvmName(“XXX”) 放在类的最顶层,给当前类换一个名字,jvm在编译时会替换@JvmName("XXX") 可以替换方法的名字Kt文件java文件code
转载 9月前
73阅读
总结在最下面: 一.@JvmName : 修改原kt文件对应的类目 用法:@file:JvmName("Kt_ZhuJie") package com.practice.day03必须写在包名上面否则报错 用处: 对于kt文件 反编译后生成的类:ZhujieKt,是自动生成的,不能自己随心所欲的命名 在Java端调用就必须是:ZhujieKt.show();而加了注解后:@file:JvmName
转载 2023-08-11 21:49:29
148阅读
本文是既 JvmName 注解在 Kotlin 中的应用和JvmMultifile 注解在 Kotlin 中的应用的第三篇关于 Kotlin的注解文章。介绍的内
原创 2022-11-25 23:34:02
317阅读
Kotlin语言【java和kotlin之间互相操作】kotlin调用javajava调用kotlin@JvmName@JvmField@JvmOverloads@JvmStatic@Throws函数类型 定义一个java类 public class Jhava { private int hitPoints = 23423144; public String utterG
目录一、Kotlin调用Java1.1 互操作性与可空性1.2 类型映射1.3 属性访问二、Java调用Kotlin2.1 @JvmName2.2 @JvmField2.3 @JvmStatic2.4 @JvmOverloads2.4.1 未使用@JvmOverloads注解2.4.2 使用@JvmOverloads注解2.5 @Throws2.6 函数类型操作一、Kotlin调用Java1.1
转载 2023-08-17 20:34:04
203阅读
前言Kotlin为了能和Java更加友好的进行交互(PY),提供了一些注解参数使得Java调用Kotlin时更加方便和友好.今天我们来学习和理解这些常用的注解:JvmDefault JvmField JvmMultifileClass JvmName JvmOverloads JvmStatic Strictfp Synchronized Volatile Transient JvmDefault
转载 2024-02-09 15:40:01
321阅读
8.@JvmName解决java方法签名相同(Handling signature clashes)最突出的例子是由于类型擦除(type erasure)引发: // 类型擦除: 无法区分List<String>和List<Int> fun List<String>.filterValid(): List<String> fu
文章目录写在前面@JvmOverloads@JvmStatic@JvmField@JvmSynthetic@JvmName 、@JvmMultifileClass@JvmInline 写在前面Kotlin代码可以经过编译器转换成VM虚拟机能识别的字节码,所以Java与Kotlin可以互相进行调用。而由于Java与Kotlin语言特性的差异,当Java调用Kotlin代码时,可以在Kotlin代码
转载 2023-09-25 05:04:28
60阅读
本文用实例讲解了各个kotlin用于编译出bytecode的注解的用法。希望大家通过这code出完美兼容java的kotlin代码,让java和kotlin想看两不厌。先来个方法总览:@JvmStatic 告诉jvm生成静态方法和成员@JvmOverloads 生成Java重载方法,应用于kotlin方法有默认值生成对于的java方法@JvmName 改变getter和setter中的方法名@Jv
转载 2024-09-24 21:04:51
28阅读
目录1.Kotlin语言的过滤函数-filter2.Kotlin语言的合并函数-zip3.Kotlin语言的函数式编程4.Kotlin语言的互操作性与可空性5.单例模式6.注解@Jvmname与Kotlin7.注解@JvmField与Kotlin8.注解@JvmOverloads与Kotlin9.注解@JvmStatic与Kotlin10.手写RxJava,全部用KT的基础来写1.Kotlin语言
转载 2024-04-21 17:32:02
65阅读
@JvmName: 扩展方法相关: 先来定义一个扩展方法: 好,接下来再来定义一个扩展函数: 此时报错了。。看一下错误提示: 其中给的提示有点奇怪,第一个是很明显咱们的扩展函数木有接收参数嘛,为啥提示JVM签名是接收一个List参数呢?其实这里就涉及到了扩展函数的语义了,对于扩展函数来说,其实是将被
原创 2019-09-21 23:11:00
92阅读
在Kotlin语言编写的代码中,你应该看到过类似这样的注解@file:JvmName(...),这有点难以理解,正常的注解不会存在类似@file:这样的前缀,在Java语言中也没有类似的语法。那么,这到底有什么作用呢? 由于其特殊的作用,我把它称之为”位置注解“。Kotlin语言是一门将语法简化到极致的编程语言,我们一起来看一段简单的代码:class Person { var na
@JvmName: 扩展方法相关:先来定义一个扩展方法: 好,接下来再来定义一个扩展函数:   此时报错了。。看一下错误提示: 其中给的提示有点奇怪,第一个是很明显咱们的扩展函数木有接收参数嘛,为啥提示JVM签名是接收一个List参数呢?其实这里就涉及到了扩展函数的语义了,对于扩展函数来说,其实是将被扩展的那个类作为扩展函数的第一个参数传进
转载 2024-10-23 22:10:24
24阅读
通过注解修改Kotlin的class文件名:对于Kotlin文件在编译之后生成的class文件名默认是有一定规则的,比如: 而其实这个生成字节码的文件名称是可以被改的,之前也提及到,也就是可以用JvmName注解,再来试一下: 然后重新的build一次,再来看一下生成的class文件: 既然可以手动的将编译的字符码文件名给改了,那。。如果两个Kot