Kotlin 的 @JvmStatic 和 @JvmField 注解】的更多相关文章

这是关于 Java 静态方法和静态变量的一段代码: public class TestStatic { private int otherField = 0; public static final BigInteger BIG_INTEGER = BigInteger.ONE; public static void method() { System.out.println("call method"); } } 我们把它转换成 Kotlin 代码,会得到这样的结果: class T…
我们一般使用类和函数要说明类和函数的确切名称.调用一个类,你需要知道它定义在哪个类中,还有它的名称和参数的类型. 注解和反射可以给你超越这个规则的能力,让你编写出使用事先未知的任意类的代码.注解赋予这些类库特定的语义,而反射允许你在运行时分析这些类的结构. 应用注解 // 如@Test标记一个函数 class MyTest{ @Test fun test(){ //TODO } } 注解只能拥有如下类型的参数:基本数据类型.字符串.枚举.类引用.其他的注解类. //类作为注解实参,要在类名后加…
工欲善其事必先利其器.像我们从零开始撸一个App的话,选择最合适的语言是首要任务.如果你跟我一样对Java蹒跚的步态和僵硬的语法颇感无奈,那么Kotlin在很大程度上不会令你失望.虽然为了符合JVM规范和兼容Java,它引入了一些较为复杂的概念和语法,很多同学就是因此放弃入门.其实越深入进去,就会越欲罢不能.除了Android开发,博主也常在后端使用Kotlin编码,有时因为某些原因同时使用Java混编.总的来说,能减少代码量,提高生产效率,似乎代码结构也更清晰了.如果你没有Kotlin的经验,…
spring boot和kotlin里静态类使用@Value注解配置解决方案前言spring boot里默认是不能给静态属性使用@Value赋值的.所以这里使用中间变量过渡绑定. 方案//applicaton.yml配置isDebug:truename:cy //Test类保存配置信息.使用@Value取配置里的isDebug和name变量值.//spring boot写法@Componentpublic class Test { public static Boolean isDebug =…
Kotlin异常与Java异常的区别: throw的Kotlin中是个表达式,这样我们可以将throw作为Elvis表达式[val test = aa ?: bb,这样的则为Elvis表达式,表示如果?前面的不为null则将前面的aa赋值给test,否则则执行?后面的赋值test]的一部分,下面看下代码: 呃,有个东东比较奇怪: 这里要解释一下:throw表达式的类型是一种特殊的类型:Nothing.在自己的代码中,可以使用Nothing来标记永远不会返回的函数.好下面来把程序执行一下: 比如好…
    Kotlin 和 java 都是一种静态类型的编程语言.表达式的类型在编译期已经确定,编译期能验证对象是否包含想访问方法或是字段,维护正确性与性能的同时保持源代码的简洁       静态类型的优点: 性能——方法调用速度更快,因为不需要在运行时才来判断调用的哪个方法 可靠性——编译器验证了程序的正确性,因而运行时崩溃的概率更低 可维护性——抹身代码更容易维护,因为你可以看到代码中用到的对象的类型 工具支持——静态类型使IDE能提供可靠的重构,精确的代码补全特性       ps:动态类型…
通过注解修改Kotlin的class文件名: 对于Kotlin文件在编译之后生成的class文件名默认是有一定规则的,比如: 而其实这个生成字节码的文件名称是可以被改的,之前https://www.cnblogs.com/webor2006/p/11530600.html也提及到,也就是可以用JvmName注解,再来试一下: 然后重新的build一次,再来看一下生成的class文件: 既然可以手动的将编译的字符码文件名给改了,那..如果两个Kotlin文件都指定同一个名称,会有啥情况发生呢?试试…
https://droidyue.com/blog/2019/08/18/faster-kapt/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 应用Kotlin之后,涉及到注解的注解处理器依赖也会由annotationProcessor替换成kapt,和最初应用Kotlin一样,总会让人一种感觉,一番应用Kotlin和Kapt之后,编译耗时更长了,不过好在Kotlin和Google 在这一方面做了很多的优化和改进,…
Java 的 POI 库可以用来创建和操作 Excel 表格,有时候我们只需要简单地将 List 或 Map 导出到表格,样板代码比较多,不够优雅.如果能像 Gson 那样,使用注解标记要导出的属性,就方便的多. Github:https://github.com/imcloudfloating/ListToExcell POI 的依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>p…
继续来研究Java调用Kotlin的一些东东. @Throws注解: 我们知道在Kotlin中是不存在checked exception的,而在Java中是存在的,那..如果从Java来调用Kotlin的角度那又是如何做到兼容的呢?下面写一个Kotlin代码: 接下来再用Java来调用此方法: 接下来运行一下: 那..貌似有点不合理呀,很明显这个方法是一定会抛异常的,那我们主动的try...catch..一下: 看一下异常提示: 其实在Kotlin中可以用@Throws注解来对确定要抛异常的(c…
Kotlin的注释 Kotlin 的代码注释和Java一模一样 Kotlin的运行方式也是先kotlinc生成字节码,再kotlin字节码 如果一行里面只有一条语句,那么可以不写分号.但如果打算在同一行写多条语句,那么前面的语句就要加上分号.允许一条语句跨越多行.但是一个字符串或者一个变量民不可以. Kotlin的变量 Kotlin声明变量 var|val 变量名 [:类型] [= 初始值] 使用var声明的变量是可变的.使用val声明的变量是不可变的(一旦被初始化就不能改变,但是要是没初始化,…
1 引言 想必学过Java的人都知道一个@Slf4j使用得多么的舒服: @Slf4j public class TestController{ @GetMapping("/test") public String test(){ log.debug("debug"); return "test"; } } 但是很不幸在Kotlin中并没有这种注解,因此,本文给出了一种类似@Slf4j注解在Kotlin中的使用方法,以及介绍一个100%使用Kotl…
不知不觉几个月就过去了,新项目已经发了两个大的版(其实已经迭代了3版),趁着项目新版刚刚上线闲下来的时间整理下用到的技术点. 整体架构 采用MVP Android官方MVP架构示例项目解析 推荐一个插件 MVPHelper可以快速生成mvp java文件(接口定义实现类),不过类名字后缀是固定的,建议下载代码自己重写Idea插件,打包使用 Android Support包 "com.android.support:appcompat-v7:25.1.0", "com.andr…
作者:字节跳动终端技术---王龙海 封光 兰军健 一.背景 本文是编译优化系列文章之 kapt 优化篇,后续还会有 build cache, kotlin, dex 优化等文章,敬请期待.本文由Client Infra->Build Infra团队出品,powered by 王龙海,封光,兰军健 相信 android 开发对于 kapt 并不陌生,之前也有很多文章在编译优化过程中谈及过 Kapt,主要是针对增量编译场景. 抖音火山版同学在接入 hilt 过程中,遇到了更严重的问题: 在 16G…
ButterKnife在之前的Android开发中还是比较热门的工具,帮助Android开发者减少代码编写,而且看起来更加的舒适,于是简单实现一下ButterKnife,相信把下面的代码都搞懂,看ButterKnife的难度就小很多. 今天实现的是编译时注解,其实运行时注解也一样能实现ButterKnife的效果,但是相对于编译时注解,运行时注解会更耗性能一些,主要是由于运行时注解大量使用反射. 一.创建java library(lib_annotations) 我这里创建3个annotatio…
在上一次https://www.cnblogs.com/webor2006/p/11522798.html中学习了Kotlin注解相关的东东,这次继续对Kotlin的注解继续学习: 注解也可以拥有自己的构造方法,并且构造方法也可以接收参数,注解构造方法所允许的参数类型: 1.与Java原生类型所对应的类型(Int, Long..) 2.字符串:string 3.classes (MyClass::class) 4.枚举:enums 5.其他的注解 6.上述类型的数组类型 下面看下代码: 接着再来…
注解是用来代码添加元数据的一种手段,要声明一个 注解,需要在类之前添加annotation修饰符 annotation class demo 注解其他属性,可以通过向注解类添加元注解的方式来指定 @Target 指定这个注解可以被用于哪些元素(类,函数,属性,和表达式) @Retention指定这个注解可的信息是否被保存到编译后的class文件中,以及在运行时是否可以通过反射访问到它 @Repeatable允许在单个元素上多次使用同一个注解 @MustBeDocumented表示这个注解是公开A…
基本语法 val value: String? = "HelloWorld" val name: String = getName() ?: return //如果是null就return println("$arg1 + $arg2 = ${arg1 + arg2}") //字符串模板 val FINAL_HELLO_CHINA = "HelloChina" //类型可以不写,自动推导 val args1 = arrayOf(1,2,3) va…
官网: http://kotlinlang.org/ http://kotlinlang.org/docs/reference/ 中文教程: http://kotlindoc.com/ Gradle: http://gradle.org/ 安装: 1. Intellij Idea : 2. Kotlin 编译器. https://github.com/JetBrains/kotlin JVM最简生存指南 http://www.importnew.com/10127.html 必读, 是写给 .N…
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:霍丙乾 近经常会收到一些 "用 Kotlin 怎么写" 的问题,作为有经验的程序员,我们已经掌握了一门或者多门语言,那么学 Kotlin 的时候就经常会有类似 " '再见'用日语怎么说?"." '你好' 用西班牙语怎么说?" 的问题,所以我决定把一些常用的语法对照列举出来,如果大家熟悉 Java,那么快速上手 Kotlin 会变得非常地容易. 这篇文章…
本文转载自 Kotlin 公众号(KotlinX) 作者:bennyhuo 最近经常会收到一些 "用 Kotlin 怎么写" 的问题,作为有经验的程序员,我们已经掌握了一门或者多门语言,那么学 Kotlin 的时候就经常会有类似 " '再见'用日语怎么说?"." '你好' 用西班牙语怎么说?" 的问题,所以我决定把一些常用的语法对照列举出来,如果大家熟悉 Java,那么快速上手 Kotlin 会变得非常地容易. 这篇文章主要是写给需要快速上手 K…
本文是本人的作品,转载请表明出处 1.extends  用 (冐号):代替.MainActivity extends Activity, 现在是  MaiActivity :Activity() 2.interface 用(逗号),代替. A interface B{} 现在是  ,B{} 3.override 不现进 注解,而是用到了方法中 这样写 override fun onCreate(saveInstanceState:Bundle?) 4. 没有switch case 了, 现在用w…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 快速书写常见的 Kotlin 代码 目录 目录如何定义变量如何定义函数如何定义数组如何写变长参数如何写三元运算符如何写 main 函数如何实例化类如何写 Getter 和 Setter 方法如何延迟初始化成员变量如何对 final 的成员变量的初始化如何获得 class 的实例 这篇文章主…
作者:Antonio Leiva 时间:Jul, 4, 2017 原文链接:https://antonioleiva.com/kotlin-from-java/ Kotlin最神奇特性之一是它能与Java完全集成.这就是说尽管你的应用程序的所有代码都是用Java编写的,而你仍然可以在Kotlin中创建一个类,从Java中使用它,且不会出现任何问题. 这有两个好处: 你可以在Java项目中使用Kotlin:在任何已经启动的项目中,你可以现在开始用Kotlin编写新的代码.然后从Java代码中调用它…
收录待用,修改转载已取得腾讯云授权 作者 | 霍丙乾 编辑 | 迷鹿 前言 最近经常会收到一些 "用 Kotlin 怎么写" 的问题,作为有经验的程序员,我们已经掌握了一门或者多门语言,那么学 Kotlin 的时候就经常会有类似 " '再见'用日语怎么说?"." '你好' 用西班牙语怎么说?" 的问题,所以我决定把一些常用的语法对照列举出来,如果大家熟悉 Java,那么快速上手 Kotlin 会变得非常地容易. 这篇文章主要是写给需要快速上手 K…
用了一段时间kotlin,越用越觉得好用,爱不释手啊,留点笔记. Kotlin 中,在类中定义的对象(object)声明,可使用 companion 修饰,这样此对象(object)就是伴生对象了.类似于Java中的 public static class NumberTest { companion object Obj { var flag = false fun plus(num1: Int, num2: Int): Int { return num1 + num2 } } } 每个类可以…
继续面向对象,开撸就是!! 接口: 我们知道对于JDK8之后接口中除了方法的声明之后还可以有default方法的,而在Kotlin中也类似,下面来看一下在Kotlin接口相关的东东: 很显然就是一个方法的声明,接着: 这是方法的具体实现,跟JDK8中的默认方法差不多,只不过在Koltin中的接口中定义具体方法之前不需要用default关键字来声明而已,下面在里面打印一句话: 接下来咱们可以在实现类中来复写接口中实现的方法,如下: 接下来问题来了:既然一个类既可以实现一个接口,又能继承一个类,那如…
Kotlin for Java Developers 学习笔记 ★ Coursera 课程 Kotlin for Java Developers(由 JetBrains 提供)的学习笔记 " From Java to Kotlin Java 和 Kotlin 代码可以相互转化 public class Person {    private final String name;    private final int age;        public Person(String name,…
Kotlin: The Swift of Android 起这个文内标题的原因很简单,就是对Kotlin抱有希望--能使Android的开发更简洁.高效及安全.知道Kotlin是从简书的一篇短文,越来越觉得将自己学习.实践的过程和想法总结成文字分享出来,不管文笔好坏,内容多少,若能抛砖引玉就足以.所以,感谢写了那么多精彩文章的大神,而我才刚从山脚启程. 项目源码放在Github上,感兴趣的朋友可以下载,欢迎送星和讨论.Demo运行的动态效果图如下: 1. Kotlin在Android Studi…
最近Oracle又在和Google撕的厉害,才知道还有这么Kotlin在Android像Swift在Mac的地位一说. Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源.与Java相比,Kotlin的语法更简洁.更具表达性,而且提供了更多的特性,比如,高阶函数.操作符重载.字符串模板.它与Java高度可互操作,可以同时用在一个项目中. 按照JetBrains的说法,根据他们多年的Java平台开发经验,他们认为Java编程语言有一定的局限性和问题,而且由于…