相关疑难解决方法(0)

将对象转换为通用类型以进行返回

有没有办法强制转换对象的方法值?我试过这种方式,但它在"instanceof"部分中给出了一个编译时异常:

public static <T> T convertInstanceOfObject(Object o) {
    if (o instanceof T) {
        return (T) o;
    } else {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

我也试过这个,但它给出了一个运行时异常,ClassCastException:

public static <T> T convertInstanceOfObject(Object o) {
    try {
        T rv = (T)o;
        return rv;
    } catch(java.lang.ClassCastException e) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有可能轻松地做到这一点:

String s = convertInstanceOfObject("string");
System.out.println(s); // should print "string"
Integer i = convertInstanceOfObject(4);
System.out.println(i); // should print "4"
String k = convertInstanceOfObject(345435.34);
System.out.println(k); // should print "null"
Run Code Online (Sandbox Code Playgroud)

编辑:我写了正确答案的工作副本:

public static <T> T …
Run Code Online (Sandbox Code Playgroud)

java generics casting

124
推荐指数
3
解决办法
17万
查看次数

标签 统计

casting ×1

generics ×1

java ×1