关键词搜索

源码搜索 ×
×

一篇文章带你搞定 Java 中的泛型的安全警告

发布2020-01-26浏览1095次

详情内容

在泛型应用中最好在声明类对象时指定好其内部的数据类型,如 Info<String> ,如果不指定类型,这样用户在使用这样的类时,就会出现不安全的警告信息。

class Info<T>{//此处可以是任意的标识符号,T 是 type 的简称
    private T var;//此变量的类型由外部决定
    public T getVar(){
        return var;//返回值的类型由外部指定
    }
    public void setVar(T var){
        this.var = var;//设置的类型由外部指定
    }
    public String toString(){
        //覆写Object类中的 toString() 方法
        return this.var.toString();
    }
}
public class Test{
    public static void main(String[] args) {
        Info i = new Info();//警告没有指定泛型类型
        i.setVar("Java");
        System.out.println("内容:" + i.getVar());//取得字符串
    }
}

    此时程序在 使用类时没有指定其泛型类型,所以出现了警告信息,表示的信息是使用了不安全的操作,因为没有指定 var 属性的具体类型。

    此时如果使用 Object 声明泛型类型

    public class Test{
        public static void main(String[] args) {
            Info<Object> i = new Info<Object>();//警告没有指定泛型类型
            i.setVar("Java");
            System.out.println("内容:" + i.getVar());//取得字符串
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    此时程序本身没有任何意义,因为就算不设置泛型也是 Object 但这样做的唯一好处是编译时警告信息消失了

    不指定泛型的程序流程图:
    在这里插入图片描述

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载