返回

Java:泛型方法、泛型类、泛型接口、类型通配符

发布时间:2023-07-20 00:17:12 307
# html# java# java

(目录)

要求:

JDK >= 1.5

泛型方法

package com.example.demo;

import java.io.IOException;

public class Demo {

    // 泛型方法
    public static  void printT(T value) {
        System.out.println(value);
    }

    public static void printObject(Object value) {
        System.out.println(value);
    }

    public static void main(String[] args) throws IOException {
        Demo.printT("Tom");
        Demo.printT(23);

        Demo.printObject("Tom");
        Demo.printObject(23);
    }
}

泛型类

package demo;

public class Box {

    private Object value;

    public void set(Object value) {
        this.value = value;
    }

    public Object get() {
        return this.value;
    }

    public static void main(String[] args) {
        Box box = new Box();
        box.set("Tom");
        String value = (String) box.get();
        System.out.println(value);
    }
}

使用泛型,可以不做类型强制转换

package demo;

public class Box {

    private T value;

    public void set(T value) {
        this.value = value;
    }

    public T get() {
        return this.value;
    }

    public static void main(String[] args) {
        Box box = new Box<>();
        box.set("Tom");
        String value = box.get();
        System.out.println(value);
    }
}

泛型接口

package demo;

interface IBox {

    void set(T value);

    T get();
}


class Box implements IBox {
    private T value;

    @Override
    public void set(T value) {
        this.value = value;
    }

    @Override
    public T get() {
        return this.value;
    }
}

public class Demo {
    public static void main(String[] args) {
        Box box = new Box<>();
        box.set("Tom");
        String value = box.get();
        System.out.println(value);
    }
}

类型通配符

public class Demo {
    public static void main(String[] args) {
        Box box = new Box<>();

        printBox(box);
    }

    public static void printBox(IBox box) {
        System.out.println(box);
    }
}

参考 https://www.runoob.com/java/java-generics.html Java学习路线-7:泛型

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线