You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java泛型中如何在getBox方法返回空参数化Box类实例

实现方案

你当前的代码存在两处语法问题,修正后即可正确返回空的参数化Box实例:

  • 类定义前不能额外加静态泛型参数声明,泛型类的类型参数直接跟在类名后即可,静态成员无法访问类层面声明的泛型参数
  • 静态泛型方法的类型参数声明与返回值类型之间需要保留空格,否则编译器无法识别语法

修正后代码

public class Box<T> {
    private T object;
    
    public static <T> Box<T> getBox() {   
        // 返回空Box实例,内部object字段默认值为null,即为空的参数化容器
        return new Box<>(); // Java 7及以上版本支持菱形语法,无需重复书写类型参数
        // 低版本Java可写为 return new Box<T>();
    }
}

调用方式

调用方法时编译器会根据上下文自动推断泛型类型,也可以显式指定类型:

// 编译器自动推断泛型为String
Box<String> stringEmptyBox = Box.getBox();
// 显式指定泛型为Integer
Box<Integer> intEmptyBox = Box.<Integer>getBox();

注意:不要通过返回null的方式实现空Box,上述实现返回的是正常实例化的类型安全容器,仅内部未存储内容,不会引发空指针异常。

内容的提问来源于stack exchange,提问作者Kristina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:06:32