java7 语法糖 之 switch 声明string

  Jdk7新switch 恒语句可以string种类。

例如:

@Test
	public void test_1(){
		String string = "hello";
		switch (string) {
		case "hello":
			System.out.println(string);
			break;

		default:
			throw new IllegalArgumentException("非法參数");
		}
	}

  语法糖的背后,其有用的对待string 类型时候,用的是hashCode() 方法转换的.

所以string 类型不能为 NULL.

比如:

@Test
	public void test_3(){
		String string = null;
		expectedException.expect(NullPointerException.class);
		switch (string) {
		case "hello":
			System.out.println(string);
			break;

		default:
			throw new IllegalArgumentException("非法參数");
		}
	}

会抛出异常

NullPointerException

版权声明:本文博主原创文章,博客,未经同意不得转载[http://blog.csdn.net/doctor_who2004]。

时间: 2024-12-28 10:03:47

java7 语法糖 之 switch 声明string的相关文章

java7 语法糖 之 switch 语句中的string

Jdk7新增的switch 语句中常量可以string类型, 例如: @Test public void test_1(){ String string = "hello"; switch (string) { case "hello": System.out.println(string); break; default: throw new IllegalArgumentException("非法参数"); } } 语法糖的背后,其实用的对待

golang 赋值与声明语法糖使用注意事项

赋值与声明语法糖 基本用法略, 搜索即可 注意事项 类型推断 := 会自动进行类型推断, 当想要的类型不是自己想要的类型时需要进行类型转换 // i1 默认是 int 类型 i1 := 1 // 当需要把 i2 当成 int64 来使用时需要进行类型转换再赋值 i2 := int64(1) 这里说到类型推断, 提一下 const 变量, 如果是 const 变量中定义的值会自动根据语境在编译期自动判断类型 同作用域已有变量不会重新创建新的变量 := 左边的变量不一定全是新变量, 有可能是老变量,

JVM(二):Java中的语法糖

JVM(二):Java中的语法糖 上文讲到在语义分析中会对Java中的语法糖进行解糖操作,因此本文就主要讲述一下Java中有哪些语法糖,每个语法糖在解糖过后的原始代码,以及这些语法糖背后的逻辑. 语法糖 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用.通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会.

Java jre7及以上版本中的switch支持String的实现细节

Java7中的switch支持String的实现细节 作者: zsxwing 更新: 2013-03-04 21:08:02 发布: 2012-04-26 13:58:19 在Java7之前,switch只能支持 byte.short.char.int或者其对应的封装类以及Enum类型.在Java7中,呼吁很久的String支持也终于被加上了. 例如,下面是一段switch中使用String的示例代码. 1 public class Test { 2 3 public void test(Str

语法糖(Syntactic sugar)

语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法.语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读.不过其并没有给语言添加什么新东西. 也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用.通常来说,使用语法糖能够增加程序的可读性,减少程序

Javac语法糖之EnumSwitch

Enum在Java中也被当作一个类来处理,并且Enum也算是Java中的语法糖,主要通过Javac中的Lower类来处理枚举这个语法糖的. Java7中允许在swith中使用enum类,如下: public class TestEnumClass { public void test() { Color color = Color.RED; switch (color) { case RED: System.out.println("red"); break; case GREEN:

Java 语法糖详解

语法糖 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法. 这种语法对语言的功能并没有影响,但是更方便程序员使用.简而言之,语法糖让程序更加简洁,有更高的可读性. 有意思的是,在编程领域,除了语法糖,还有语法盐和语法糖精的说法,篇幅有限这里不做扩展了. 我们所熟知的编程语言中几乎都有语法糖.作者认为,语法糖的多少是评判一个语言够不够牛逼的标准之一. 很多人说 Java 是一个 "低糖语言&qu

【Java基础】Java中的语法糖

目录 Java中的语法糖 switch对String和枚举类的支持 对泛型的支持 包装类型的自动装箱和拆箱 变长方法参数 枚举 内部类 条件编译 断言 数值字面量 for-each try-with-resource Lambda表达式 Lambda表达式的语法 基本的Lambda例子(实现功能接口) 使用Lambdas排序集合 使用Lambdas和Streams 字符串对+号的支持 参考 语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言本身

Groovy语法糖以及DSL

前言 Why 初次接触到Groovy是在实习中接触到一个 纯Groovy写的项目,当时看了下这不就是没有分号的Java么,而且也是有年纪的语言了,并不想投入时间学习.后来工作中越来越多的看到Groovy的身影,Gradle,Spring Cloud Contract等等都支持Groovy作为DSL(领域专用语言),同时Groovy在测试领域也有一席之地,因为语法简单,可以很快捷的编写Test Case,总之可以把Groovy看作Java的小伙伴,好帮手. What Groovy是JVM平台上的一