泛型
备注:
范例:
1.新特性-可变参数 范例1:
public class TestDemo {
public static void main(String[] args) {
System.out.println(add(1,4,5,6)); // 随意传递的内容,随意个数
System.out.println(add(new int[]{1,2,3})); // 可变参数可以接收数组
}
public static int add(int ... data) { // 本身还是一个数组
int result = 0 ;
for (int i = 0; i < data.length; i++) {
result += data[i] ;
}
return result ;
}
}
2.新特性-foreach循环 范例2:
public class TestDemo {
public static void main(String[] args) {
int[] data = new int[] { 1, 2, 3, 4, 5 }; // 原始数组
for (int i : data) { // 将数组中每个元素赋值给i
System.out.println(i); // 这种循环避免了角标的问题
}
}
}
3.新特性-静态导入 范例3:
import static www.xust.java.util.MyMath.*; // 静态导入
public class TestDemo {
public static void main(String[] args) {
System.out.println(add(10, 20));
System.out.println(sub(30, 10));
}
}
4.泛型的语法 范例4:
class MyClass<T> {
T value1;
}
//泛型类引入多个类型参数以及使用
class MyClass<T,E> {
T value1;
E value2;
}
5.泛型方法的定义 范例5:
class MyClass{
public <T> void testMethod(T t) {
System.out.println(t);
}
}
6.泛型方法与泛型类共存 范例6:
class MyClass<T>{
public void testMethod1(T t) {
System.out.println(t);
}
public <T> T testMethod2(T t) {
return t;
}
}
//MyClass <T> 是泛型类,testMethod1 是泛型类中的普通方法,而 testMethod2 是一个泛型方法
7.通配符(重点)"?" 范例7:
public class TestDemo {
public static void main(String[] args) {
Message<Integer> message = new Message() ;
message.setMessage(55);
fun(message);
}
// 此时使用通配符"?"描述的是它可以接收任意类型,但是由于不确定类型,所以无法修改
public static void fun(Message<?> temp){
//temp.setMessage(100); 无法修改!
System.out.println(temp.getMessage());
}
}
8.定义泛型接口 范例8:
interface IMessage<T> { // 在接口上定义了泛型
public void print(T t) ;
}