Java 如何创建获取泛型参数并返回该类型对象的方法?

Java 如何创建获取泛型参数并返回该类型对象的方法?,java,generics,Java,Generics,我需要创建一个从字节数组生成对象的方法。我的最佳尝试: private static <T> T objectCreate(byte[] bytes, Class<T> clazzType) { if (clazzType.isAssignableFrom(String.class)) { t = (T) new String(bytes); return t; } } private st

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

private static <T> T objectCreate(byte[] bytes, Class<T> clazzType) {
        if (clazzType.isAssignableFrom(String.class)) {
            t = (T) new String(bytes);
            return t;
        }
}
private static T objectCreate(字节[]字节,类clazzType){
if(clazzType.isAssignableFrom(String.class)){
t=(t)新字符串(字节);
返回t;
}
}
但在这里,我在
t=(t)新字符串(字节)上有一个未经检查的强制转换

我能做得更好吗?

您可以使用:


这是合乎逻辑的,因为类型检查依赖于
Class
方法。然而,这只是文体上的差异;虽然它不会发出警告,但它本身仍然是一个未经检查的操作。

当对象不可从
字符串
赋值时,会发生什么情况?还有,为什么您需要
字符串来创建基于数组的对象?在这些情况下,未选中的强制转换是不可避免的,只是超出了警告。我正在为卡夫卡反序列化制定协议。所以,当我从字节流中读取数据时,我会说:“我现在要读取一个字符串,读取该字符串并使字符串成为对象”。我将在这个方法中涵盖对象的所有可能性,并在出现未涵盖的对象时抛出异常。
t = clazzType.cast(new String(bytes));