java捕获枚举类型异常_Javaday12(Lambda,枚举,异常,
断⾔)
⼀、lambda表达式
lambda表达式主要是替换了原有匿名内部类的写法,也就是简化了匿名内部类的写法。
(parameters)->expression 或者 (parameters)->{ statements; }
Lambda表达式语法⽰例:
不需要参数,返回值为 5 :() -> 5
接收⼀个参数(数字类型),返回其2倍的值: x -> 2 * x
java valueof接受2个参数(数字),并返回他们的差值: (x, y) -> x – y
接收2个int型整数,返回他们的和: (int x, int y) -> x + y
接受⼀个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void): (String s) -> System.out.print(s)
lambda是⽅法的实现;
lambda是延迟执⾏的;
lambda表达式编译后只是定义了⼀个⽅法调⽤点,具体调⽤那个⽅法要到运⾏时才能决定。
lambda表达式对返回的实例类型有严格的要求:
必须是接⼝
接⼝中只有⼀个需要实现的抽象⽅法,因为如果接⼝中有超过1个抽象⽅法需要实现的情况并不适⽤于lambda表达式
每⼀个lambda表达式都对应⼀个接⼝类型。⽽“函数式接⼝”是指仅仅只包含⼀个抽象⽅法的接⼝,每⼀个该类型的lambda表达式都会匹配到这个抽象⽅法。因为默认⽅法不算抽象⽅法,所以也可以给函数式接⼝添加默认⽅法。
lambda表达式中是⽆法访问到默认⽅法的。
可以直接访问标记了final的外层局部变量,或者实例的成员变量以及静态变量
⼆、:: 操作符
JDK8中引⼊了⼀个新的操作符(::)
:: 操作符主要⽤作静态⽅法、成员⽅法、构造⽅法的绑定
三、枚举
所有的枚举都继承⾃java.lang.Enum类。由于Java不⽀持多继承机制,所以枚举对象不能再继承其他类。
枚举可以实现接⼝。
不能有public构造⽅法,可以有其他修饰符修饰的构造⽅法,这样保证客户代码没有办法新建⼀个enum实例。所有的枚举都是public static final 的
Enum默认实现了java.lang.Comparable接⼝。
Enum覆载了了toString⽅法
Enum提供了⼀个valueOf⽅法,这个⽅法和toString⽅法是相对应的
Enum还提供了values⽅法,这个⽅法使你能够⽅便的遍历所有的枚举值
Enum还有⼀个oridinal的⽅法,这个⽅法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序⽽定
四、异常
Throwable:包含有异常(Exception)和错误(Error)。
Throwable类有两个⼦类:Exception和Error;所有异常都是Exception类的直接或间接⼦类;所有错误
都是Error的直接或间接⼦类;
异常:指的是程序运⾏时发⽣的不正常事件;异常能够被程序处理,保证程序继续运⾏下去;例如,除数为0,⽂件没有到,输⼊的数字格式不对......
错误:错误程序没法处理,例如内存泄漏,发⽣错误后,⼀般虚拟机会选择终⽌程序运⾏,程序员需要修改代码才能解决相关错误:
Exception分为:⾮运⾏时异常(检查异常)和运⾏时异常(⾮检查异常)
运⾏时异常:也称为⾮检测异常(unchecked Exception), 这些异常在编译期不检测,程序中可以选择处理,也可以不处理。如果不处理运⾏时会中断,但是编译没问题;
⾮运⾏时异常:也称为检测异常(checked Exception), 是必须进⾏处理的异常,如果不处理,将发⽣编译期错误;
RuntimeException的⼦类都是运⾏时异常。
五、异常说明
1.NullPointerException 空指针异常
当对⼀个空对象,即没有初始化,依然为null的对象调⽤属性或者⽅法。
public static voidmain(String[] args){
String str= null; //值为null
System.out.println(str.length()); //这⾥调⽤了⼀个空的字符串 那么就会报空指针异常 // 注意 这⾥String内的length是⽅法 ⽽在数组中的length是属性
}
2.AirthmeticException 数学异常
整除0时会发⽣数学异常
public static voidmain(String[] args){//浮点数除以0时不会发⽣数学异常
System.out.print(10.0/0);//整数除以0时会发⽣数学异常
System.out.print(10/0);
}
3.IndexOutOfBoundsException 数组越界异常
4.NumberFormatException 数组格式异常
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论