文档章节

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

© 著作权归作者所有

共有 人打赏支持
丽天
粉丝 63
博文 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总结 ==================================================================================================================================================......

黑泽明军
2018/04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux syslog相关函数详解

介绍 syslog是Unix系统的日志系统。可以将日志记录在本地系统中。 一个完整的syslong日志包含如下信息:程序模块 | 严重性 | 时间 | 主机名 | 进程名 | 进程ID | 正文。 syslong相关函数 1....

RongJinhui0
12分钟前
0
0
使用nsenter工具进入Docker容器

查看本机装没有nsenter whereis nsenter或者whatis nsenter 未安装先安装,网上有很多这样的脚本 vi nsenter.sh#!/bin/bashcurl https://www.kernel.org/pub/linux/utils/util-linux/v2....

问题终结者
12分钟前
0
0
MaxCompute安全管理指南-基础篇

背景及目的 方便和辅助MaxCompute的project owner或安全管理员进行project的日常安全运维,保障数据安全。 MaxCompute有安全模型,DataWorks也有安全模型,当通过DataWorks使用MaxCompute,而...

阿里云云栖社区
13分钟前
0
0
Retrofit设计模式源码解析

因为Retrofit做到了很强的解耦,因此就一定需要用到很多设计模式。所以,我觉得,通过阅读Retrofit源码来学习设计模式是再好不过的设计模式学习方法了。 大致看了一圈Retrofit源码,受益匪浅...

亭子happy
13分钟前
3
0
哈夫曼编码

哈夫曼编码的基本思想是以字符的使用频率作为权构建一颗哈夫曼树,然后利用 哈夫曼树对字符进行编码 哈夫曼算法采用的贪心策略是每次从树的集合中取出没有双亲权值最小的两棵作为左右子树, ...

writeademo
15分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部