JDK 1.5 新特性学习笔记(2)
博客专区 > 丽天 的博客 > 博客详情
JDK 1.5 新特性学习笔记(2)
丽天 发表于7年前
JDK 1.5 新特性学习笔记(2)
  • 发表于 7年前
  • 阅读 598
  • 收藏 2
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

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[]类型的变量。

标签: Java JDK5
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 62
博文 21
码字总数 14606
评论 (0)
×
丽天
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: