一、高级参数:三个点 类型后面三个点(String...),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列 表,其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。 例如:有一个方法叫做test(String...strings) 重载方法时,可以写方法test(),但不能写test(String[] strings),这样会出编译错误,系统提示出 现重复的方法。 在使用的时候,对于test(String...strings),可以直接用test()去调用,表示没有参数,也可以用去 test("aaa"),也可以用test(new String[]{"aaa","bbb"})。 另外如果既有test(String...strings)函数,又有test()函数,在调用test()时,会优先使用test()函数。 只有当没有test()函数式,调用test(),程序才会走test(String...strings)。 Java高级技术涵盖了许多重要的编程概念,这里主要讨论的是两个关键特性:可变长度参数列表(varargs)和泛型。 1. **可变长度参数列表(Varargs)** 自Java 5开始引入的可变长度参数列表允许方法接受零个或多个相同类型的参数。在方法签名中,类型后面跟三个点(...)来表示这一特性。例如,`test(String... strings)`方法可以接收任意数量的String参数,或者是String数组。这个特性简化了传入数组作为参数的调用方式,因为你可以直接传递单独的字符串或字符串数组。当你同时有`test(String... strings)`和`test()`两种重载方法时,调用`test()`会优先选择无参数的方法,只有当无`test()`时,调用`test()`才会执行`test(String... strings)`。以下是一个简单的例子: ```java public static void main(String[] args) { test(); // 无参数 test("one"); // 单个参数 test("one", "two", "three"); // 多个参数 test(new String[]{"one", "two", "three"}); // 数组参数 } private static void test(int... arrs) { System.out.println("参数个数:" + arrs.length); for (int arr : arrs) { System.out.print("、" + arr); } System.out.println("\n--------------------------------------"); } ``` 2. **泛型(Generics)** 泛型是Java中的一种类型系统增强,它允许在类、接口和方法中使用类型参数,实现了类型安全性和代码重用。泛型的基本思想是将类型作为参数,这样可以在不创建新的类型的情况下,通过传入不同的类型参数来控制类的行为。 - **泛型类**:泛型类定义了一组通用的方法和属性,这些方法和属性可以应用于多种数据类型。例如,`List<T>`接口,这里的`T`就是一个类型参数,当我们创建`List`实例时,如`List<Integer>`或`List<String>`,`T`就会被替换为`Integer`或`String`,确保了列表只能存储特定类型的元素。 - **泛型方法**:泛型方法允许单个方法处理多种类型的数据。在方法签名中声明类型参数,如`<T> void printList(List<T> list)`,这里的`<T>`表示`printList`方法可以处理任何类型的列表。调用时,我们根据实际需要传入具体类型,如`printList(Arrays.asList(1, 2, 3))`或`printList(Arrays.asList("a", "b", "c"))`。 - **泛型接口**:泛型接口与泛型类类似,也是定义带有类型参数的接口,使得实现该接口的类可以根据需要使用不同类型的参数。例如,`Iterable<T>`接口,`T`就是类型参数,表示可以迭代的任何类型。 通过泛型,Java提供了一种强大的工具来增强代码的灵活性和类型安全性,减少强制类型转换,以及防止在运行时出现类型异常。 总结来说,Java的可变长度参数列表和泛型都是为了提高代码的灵活性和可读性,同时确保类型安全。了解并熟练运用这两个特性是成为专业Java开发人员的关键步骤。
剩余12页未读,继续阅读
- 粉丝: 22
- 资源: 165
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 从XML生成可与Ajax共同使用的JSON中文WORD版最新版本
- silverlight通过WebService连接数据库中文WORD版最新版本
- 使用NetBeans连接SQLserver2008数据库教程中文WORD版最新版本
- XPath实例中文WORD版最新版本
- XPath语法规则中文WORD版最新版本
- XPath入门教程中文WORD版最新版本
- ORACLE数据库管理系统体系结构中文WORD版最新版本
- Sybase数据库安装以及新建数据库中文WORD版最新版本
- tomcat6.0配置oracle数据库连接池中文WORD版最新版本
- hibernate连接oracle数据库中文WORD版最新版本