泛型高级之通配符
/*
* 泛型高级(通配符)
*
* ?:任意类型,如果没有明确,要么就是Object以及任意的Java类
* ? extends E:向下限定,E及其子类
* ? super E:向上限定,E及其父类
* */
增强for的概述和使用
/*
* 增强for:是for循环的一种
*
* 格式
* for (元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素;
}
*
* 好处:简化了数组和集合的遍历
*
* 弊端:增强for的目标不能为null
*
* 如何解决?
* 对增强for的目标先进行null的判断
*
* 增强for可以用来替代迭代器
* */
import java.util.List;
/*
* 增强for:是for循环的一种
*
* 格式
* for (元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素;
}
*
* 好处:简化了数组和集合的遍历
*
* 弊端:增强for的目标不能为null
*
* 如何解决?
* 对增强for的目标先进行null的判断
*
* 增强for可以用来替代迭代器
* */
public class IntegerDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = { 1, 2, 3, 4, 5 };
for (int x : arr) {
System.out.println(x);
}
String strArray[] = { "hello", "world", "java" };
for (String x : strArray) {
System.out.println(x);
}
List<String> list = null;
if (list != null) {
for (String x : list) {
System.out.println(x);
}
}
}
}
静态导入的概述和使用
import static java.lang.Math.abs;
import static java.lang.Math.max;
import static java.lang.Math.pow;
/*
* 静态导入
*
* 格式:
* import static 包名...类名.方法名;
* 可以直接导入到方法的级别
*
* 静态导入的注意事项:
* A:方法必须是静态的
* B:如果有多个同名的静态方法,容易不知道使用哪个。这个时候必须加前缀
* */
public class IntegerDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(abs(-100));
System.out.println(max(20, 30));
System.out.println(pow(2, 3));
}
}
可变参数的概述和使用
/*
* 可变参数:定义方法的时候不知道应该定义多少个参数
*
* 格式:
* 修饰符 返回值类型 方法名(数据类型... 变量名) {
*
}
*
* 注意:
* 这里的变量其实是一个数组
* 如果一个方法有可变参数,并且有多个参数,那么可变参数肯定是最后一个
* */
public class IntegerDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int result = sum(10, 20, 30, 40);
System.out.println(result);
}
public static int sum(int... a) {
int s = 0;
for (int x : a) {
s += x;
}
return s;
}
}