Java技术文章java学习

Java泛型简单的使用

2019-01-24  本文已影响24人  苡仁ilss

Github:https://github.com/ilssio/java-base-ilss

前言

最简单的泛型

package io.ilss.advanced.generic;

/**
 * className MyObject
 * description MyObject
 *
 * @author feng
 * @version 1.0
 * @date 2019-01-24 18:32
 */
public class MyObject<T> extends BaseData {
    private T valueOne;
    private T valueTwo;

    public MyObject(T valueOne, T valueTwo) {
        this.valueOne = valueOne;
        this.valueTwo = valueTwo;
    }

    public T getValueOne() {
        return valueOne;
    }

    public void setValueOne(T valueOne) {
        this.valueOne = valueOne;
    }

    public T getValueTwo() {
        return valueTwo;
    }

    public void setValueTwo(T valueTwo) {
        this.valueTwo = valueTwo;
    }

    public static void main(String[] args) {
        MyObject<String> object = new MyObject<>("String one!", "String two");
        System.out.println("value one " + object.valueOne + " value two " + object.valueTwo);
    }
}

用泛型做一个接口返回类

package io.ilss.advanced.generic;

/**
 * className ResponseMsg
 * description ResponseMsg
 *
 * @author feng
 * @version 1.0
 * @date 2019-01-24 18:47
 */
public class ResponseMsg<T extends BaseData> {
    public static int SUCCESS_CODE = 1;
    public static int ERROR_CODE = 0;
    public static int OTHER_CODE = -1;
    private int code;
    private String msg;
    private T data;

    public static <U extends BaseData> ResponseMsg sendSuccess(U data) {
        ResponseMsg<U> responseMsg = new ResponseMsg<>();
        responseMsg.code = SUCCESS_CODE;
        responseMsg.data = data;
        responseMsg.msg = "Remote Call Success!";
        return responseMsg;
    }

    public static <U extends BaseData> ResponseMsg sendError(U data, String msg) {
        ResponseMsg<U> responseMsg = new ResponseMsg<>();
        responseMsg.code = ERROR_CODE;
        responseMsg.data = data;
        responseMsg.msg = "Remote Call Error";
        return responseMsg;
    }
    public static <U extends BaseData> ResponseMsg sendOther(U data, String msg) {
        ResponseMsg<U> responseMsg = new ResponseMsg<>();
        responseMsg.code = OTHER_CODE;
        responseMsg.data = data;
        responseMsg.msg = msg;
        return responseMsg;
    }

    public static void main(String[] args) {
        System.out.println(ResponseMsg.<MyObject>sendSuccess(new MyObject<String>("asdf","asfd")));
    }

    @Override
    public String toString() {
        return "ResponseMsg{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                '}';
    }
}

注意

上一篇 下一篇

猜你喜欢

热点阅读