如何创建获得泛型参数和返回该类型对象的方法?

时间:2017-03-23 13:24:54

标签: java generics

我需要创建一个从字节数组生成对象的方法。我最好的尝试:

private static <T> T objectCreate(byte[] bytes, Class<T> clazzType) {
        if (clazzType.isAssignableFrom(String.class)) {
            t = (T) new String(bytes);
            return t;
        }
}

但是我在t = (T) new String(bytes);

上有一个未经检查的演员表

我可以做得更好吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Class.cast

t = clazzType.cast(new String(bytes));

这是合乎逻辑的,因为您依靠Class方法进行类型检查。然而,这只是一种风格差异;虽然它没有发出警告,但它本身仍然是一种未经检查的操作。