Kotlin中的静态方法kotlin.Android
标签: Android kotlin 探究Acitivity kotlin android studio android java
Kotlin中的静态方法
kotlin极度弱化了静态方法的这个概念
在kotlin中就非常推荐使用单列类这个方法来实现
代码如下
object staticA {
fun stat(){}
}
fun main(){
staticA.stat()
}
很简单不用实例化久可以调用
那么问题来了怎么调用只调用一个类里面的一个方法呢
代码如下
class staticB {
fun stat1(){
}
companion object{
fun stat2(){
}
}
}

其实以上两种都算不上真正的静态方法
在Kotlin中定义静态方法无非有两种
一种是注解
一种是顶层方法
静态方法注解
class staticB {
fun stat1(){
}
companion object{
@JvmStatic
fun stat2(){
}
}
}
java调用 kotlin我就不说了上面有
public class staticC {
public static void main(String[] ager){
staticB.stat2();
}
}
顶层方法静态
顶层方法直接 创建文件不用Class
文件名 staticB
fun stat1(){}
fun stat2(){}
在Kotlin调用
fun main (){
stat1()
stat2()
}
在java中调用
注意:java没有顶层方法这个概念,于是Kotlin编译器会自动编译出一个叫做 StaticBKt的java类, staticB名字变成了第一个大写StaticB,在加上Kt就成了 StaticBKt类
StaticBKt类里面的方法是以静态的方式定义在StaticBKt类中的
public class staticC {
public static void main(String[] ager){
StaticBKt.stat1();
StaticBKt.stat2();
}
}
智能推荐
Kotlin 中的伴生对象和静态成员
转载请注明出处:https://blog.csdn.net/sinat_14849739/article/details/80552111 本文出自Shawpoo的专栏 我的简书:简书 一、前言 最近公司开发的项目使用的是 Kotlin,所以不得不学起来 Kotlin 这门语言了,毕竟是 Android 官方的第一开发语言嘛!在平时的开发中,我习惯将启动 Activity 的方法以静态方法的形式定...
Kotlin基础(3)——Kotlin中的区间
一、区间的创建 (1)开区间 (2)左闭右开区间 (3)倒序区间 (4)区间的步长 二、区间的迭代 (1)迭代方式一: (2)迭代方式二: 三、区间的包含关系 (1)包含 (2)不包含 四、区间的应用 ...
Kotlin基础(2)——Kotlin中的数组
一、Kotlin和Java的数组类型 二、数组的创建 Java中数组的创建: Kotlin中数组的创建: 或者 打印数组(kotlin中打印数组的方法): 三、数组的长度 Java中数组的长度: Kotlin中数组的长度: 四、数组的读写 五、数组的遍历 六、数组的包含关系...
Kotlin基础(4)——Kotlin中的集合
(1)集合框架的接口类型对比 (2)集合框架的创建 Java中创建List集合: Kotlin中创建List集合: Kotlin中创建Map集合: 注意:这里的Any相当于Java中的Object Kotlin中创建ArrayList: (3)集合框架的读写 Java中集合的添加: Kotlin中集合的添加: 或者 注意:对于List来讲,+=等价于add Java中集合的删除: Kotlin中集...
Kotlin中的Lambda
最近在网站上看了看Lambda表达式在Kotlin中的使用,借鉴了大牛一些讲解的内容,这里简单记录了下重点内容,先看下目录 1.Lambda介绍 Lambda表达式属于函数式编程语言,区别于Java面向对象编程语言。它本质是`匿名函数,因为底层就是匿名函数实现的。 2.Lambda的使用 2.1Lambda表达式的特点 Lambda表达式总是被大括号包裹着,箭头前面是参数(可有可无)...
猜你喜欢
Kotlin中的委托
设计大型面向对象系统的一个常见问题就是由继承的实现导致的脆弱性。 当我们需要扩展一个类并重写某些方法时,代码就变得依赖你继承的那个类的实现细节了。当系统不断的演进并且基类的实现被修改或者新方法被添加进去时,我们做出的关于类的行为的假设会失效,所以代码也许最后就以不正确的行为告终了。 Kotlin 的设计意识到了这种问题,并默认将实现类视作 final 的。这确保了只有那些设计成可扩展的类才可以被继...
CORDIC arithmetic
传统CORDIC算法code Verilog代码: 时钟为50Mhz; 输出设置均设置为有符号数,主要是因为计算CORDIC算法时,需要判断Z通道的符号,来得到迭代过程中旋转方向。 然后根据缩放因子和arctan 2^-n 的预定义并乘以2^16 来进行后续计算,根据迭代方程写出代码;最后将(0度到90度)中正弦值与余弦值来扩大至(0度至360度)的正弦值与余弦值。 编写的tb文件如下: 最终使用...
dubbo源码解析-线程通讯原理
本来想通过Debug从头屡,发现意义不大,还是写点主通讯流程吧 本文基于JDK1.8;dubbo2.7.5 线程通讯原理 解释总体流程: DubboInvoker#doInvoker(Invocation)发起request,进入HeaderExchangeChannel 初始化Request对象(Dubbo自己封装的),初始化DefaultFuture将Request、channel放入,并记录...
使用Intellij Idea+Gradle 搭建Java 本地开发环境
Java 本地开发环境搭建 项目搭建采用技术栈为:Spring+Spring MVC+Hibernate+Jsp+Gradle+tomcat+mysql5.6 搭建环境文档目录结构说明: 使用Intellj Idea 搭建项目过程详解 项目各配置文件讲解及部署 各层包功能讲解&项目搭建完毕最终效果演示图 项目中重要代码讲解 5.配置tomcat 运行环境 6.webapp文件夹下分层详解 ...
js中array数组除重最快的方式(100万数据量下测试)
模拟100万数据 测试1 for循环 + in 运算符 (不是 for…in 循环) 测试2 双层for循环 (太慢了) while …同理。 测试3 for循环 + arr.indexof()判断 测试4 for…in循环 + in 运算符 测试结果...
