文档章节

JDK 1.5 新特性学习笔记(2)

丽天
 丽天
发布于 2010/12/26 10:19
字数 468
阅读 598
收藏 2

2. 静态导入

静态导入也是一个辅助性的功能增强,能够静态导入变量方法,省略了一些冗长的代码。静态导入的关键字是import static。静态导入时可以使用通配符(*)

代码示例:

import static java.lang.System.out;
import static java.util.Arrays.sort;
import static java.lang.Math.*;
import java.util.Arrays;
// .. .. ..
public static void main(String[] args) {
    int[] ints = {3, 7, 4};
    sort(ints);
    out.println(Arrays.toString(ints));
    out.println(sqrt(PI * PI));
}

注:静态导入还可以导入静态内部类,这种用法不太常见,此处不再提供代码示例。

 

3. 变长参数

变长参数(varargs)允许方法中一次接收多个同样类型的参数,不需要将这些参数预先明确定义出来。

变长参数使用...标识,代码示例:

public class Guitar {
	public Guitar(String builder, String model, String... features) {
	}

	public static void main(String... args) {
		Guitar guitar1 = new Guitar("Martin", "HD-28V", "Hot-rodded by Dan Lashbrook",
				"Fossil Ivory Nut", "Fossil Ivory Saddle", "Low-profile bridge pins");
		Guitar guitar2 = new Guitar("Bourgeois", "OMC",
				"Incredible flamed maple bindings on this one.");
		Guitar guitar3 = new Guitar("Martin", "D-18");
		String[] features = {};
		Guitar guitar4 = new Guitar("Collings", "OM-42", features);
	}
}

在类Guitar的Constructor中使用了变长参数定义:String... features。调用时可以传递多个String参数,而不需要定义不同的Constructor。注意第三个变量的使用,只传递了两个参数,即变长参数是(0..*)的概念。

变长参数的使用有一定的限制,一个方法中只能定义一个变长参数,且此变长参数必须位于参数列表的末尾

对于变长参数,Java编译器实际将其识别为一个对应类型的数组(示例代码中的main方法可以证明)。例如上边的例子中,编译器将String... features识别为String[] features,可以将其按照数组方式使用,如进行for each遍历,或将其赋值给一个String[]类型的变量。

© 著作权归作者所有

共有 人打赏支持
丽天
粉丝 62
博文 22
码字总数 14606
作品 0
南京
JDK 1.5 新特性学习笔记(1)

JDK 1.5/5.0在Java语言方面进行了许多增强。此文简要描述每一新特性的基本内容,便于快速了解相关知识点,更详细的描述请参考相关资料。 1. 自动装箱(Auto Boxing) 自动装箱即在基本类型(...

丽天
2010/12/19
0
0
Groovy学习笔记(1)-简介

Groovy是一种基于JVM(Java虚拟机)的面向对象的敏捷动态语言,它结合了Python、Ruby和Smalltalk的许多强大的特性(比如动态类型转换、闭包和元编程(metaprogramming)支持),Groovy 代码能...

山海经
2016/11/09
37
0
Java高级部分笔记-------Java5.0的新特性

静态导入 1.1 JDK 1.5 增加的静态导入语法用于导入类的某个静态属性或方法。使用静态导入可以简化程序对类静态属性和方法的调用。 1.2 语法:Import static 包名.类名.静态属性|静态方法|* ...

查封炉台
2014/04/21
0
0
JDK 1.5 新特性学习笔记(4)

Annotation(注解) Annotation是一种元数据(metadata),即“Information about information”,在源代码中标记。 注解使用类Javadoc的语法,@ANNOTATION_NAME(参数),参数为KEY=VALUE的形式...

丽天
2011/06/27
0
0
java基础学习_JDK新特性_day28总结

java基础学习JDK新特性day28总结 ==================================================================================================================================================......

黑泽明军
04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

springmvc入门之映射处理器(一)

1.简析映射处理器 在spring mvc中,使用映射处理器可以把web请求映射到正确的处理器上,spring内置了很多映射处理器,而且我们也可以自定义映射处理器。下面的实例展示spring中最常用的两个映...

明理萝
1分钟前
0
1
一个破碎的人,窃机浪漫飞行后自由坠毁

简评:A sick man who needs treatment 29 岁的 Richard Russell 是西雅图机场地勤人员,上周五,在刚进入秋天的日子,他偷了一架未载客的飞机,在空中飞行独自超过一小时,甚至驾机在空中翻...

极光推送
3分钟前
0
0
linux一次性解压多个.gz或者.tar.gz文件

解压多个压缩包 对于解压多个.gz文件的,用此命令: for gz in *.gz; do gunzip $gz; done 对于解压多个.tar.gz文件的,用下面命令: for tar in *.tar.gz; do tar xvf $tar; done...

小兔纸乖乖
13分钟前
0
0
bower 安装包的使用

一,bower是什么? bower是一种包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。 它依赖于node.js和npm,如果要使用它需要先安装node.js和npm,因为node.js包含n...

nsns
16分钟前
0
0
EXCEL简易的进度条

在进度栏非常简单的进度控制,以下知道程序是否已完成。 Dim x As IntegerDim MyTimer As Double'Change this loop as needed.For x = 1 To 50' Do stuffApplication.StatusBar = ...

tedzheng
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部