泛型(使用,泛型方法,通配符(重点),泛型接口,类型擦除)、新特性(JDK1.5)(可变参数,foreach循环,静态导入 )- 总结七

泛型

备注:

范例:

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) ;
}

猜你喜欢

转载自blog.csdn.net/qq_43109561/article/details/89383068