在Kotlin中 使用js 函数 import javax.script.Invocable import javax.script.ScriptEngineManager fun main(args: Array<String>) { val engine = ScriptEngineManager().getEngineByName("nashorn") val js = """ function rebate(price, sale_co…
Kotlin的高阶函数和常用高阶函数 文章来源:企鹅号 - Android先生 高阶函数的定义 将函数当做参数或者是返回值的函数 什么是高阶函数 可以看看我们常用的 函数: 首先我们可以知道, 是 的扩展函数,然后参数是 ,但是 不再像和我们以前Java那样传递的是一个对象,这时传递的是一个函数.这个函数的入参为 ,返回值为 .所以 也是一个高阶函数,因为它将函数当做参数进行传递了.我们尝试着去调用一下 函数: 调用的时候,我们将 函数传递给了 函数,这里采用的是函数引用.就上诉代码,我们还可以…
  异常   异常:异常就是Java程序在运行过程中出现的错误. 异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象. 其实就是Java对不正常情况进行描述后的对象体现. Throwable         |--Error        严重问题,我们不处理.         |--Exception                 |--RuntimeException        运行期异常,我们需要修正代码                 |…
自定义异常 问题:现实中会出现新的病,就需要新的描述. 分析: java的面向对象思想将程序中出现的特有问题进行封装. 案例: 定义功能模拟凌波登录.(例如:lb(String ip))需要接收ip地址 1.当没有ip地址时,需要进行异常处理. 1. 当ip地址为null是需要throw new Exception("无法获取ip"); 但Exception是个上层父类,这里应该抛出更具体的子类. 可以自定义异常 2.自定义描述没有IP地址的异常(NoIpException). 和su…
/*注意:异常声明在函数上 异常在子父类覆盖时的体现1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者异常的子类2.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出分父类异常的子集.3.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常  如果子类方法发生了异常.就必须要进行try处理,绝对不能抛.*/ /*特点总结1.层次关系   ----AEception        BException   ----CExcept…
Java 自定义异常 示例 1 : 创建自定义异常 一个英雄攻击另一个英雄的时候,如果发现另一个英雄已经挂了,就会抛出EnemyHeroIsDeadException 创建一个类EnemyHeroIsDeadException,并继承Exception 提供两个构造方法 无参的构造方法 带参的构造方法,并调用父类的对应的构造方法 class EnemyHeroIsDeadException extends Exception{ public EnemyHeroIsDeadException(){…
高阶函数是一种特殊的函数,它接受函数作为参数,或者返回一个函数 import java.awt.geom.Area fun main(arg: Array<String>) { val mobilePhoto = mobilePhoto() processProduct(mobilePhoto,::mobliePhoneArea) print(mobilePhoto) } interface product{ var area:String fun sell(name:String) } cl…
在common工程创建捕获异常的类:CustomException Runtime叫做运行异常.在代码中抛出的话 对我们的代码没有可侵入性 如果在代码上抛出 如果改成Exception 这时候就会有错误提示. 那就必须要在方法的上面抛出‘ 要么不在方法上抛出,去捕获 指定resultCode使用构造方法来赋值 捕获到了错误代码.就需要一个get方法去取出这个错误代码.这样自定义 异常类型就定义好了. public class CustomException extends RuntimeExce…
let 定义: let扩展函数的实际上是一个作用域函数,当你需要去定义一个变量在一个特定的作用域范围内,let函数的是一个不错的选择:let函数另一个作用就是可以避免写一些判断null的操作. 翻译: 使用object.let{}可以在代码块里使用it代替object进行操作,节省代码并且增加可读性,还可以判空 示例: 不使用let: mVideoPlayer?.setVideoView(activity.course_video_view) mVideoPlayer?.setControlle…
fun d(x:Int):Int=x* 如果函数体只有一条语句,而且是return语句,那么可以省略大括号以及return关键字,…