java - 将已转换的对象返回到具体类类型

标签 java generics

请看下面的方法。 有没有办法以通用的方式强制转换创建的对象,并将已强制转换的对象返回到具体的类类型,这样用户就不必自己强制转换它?

public static  Object getObject(String xmlString, String fullyQualifiedClassName) throws Exception {

        StringReader reader = new StringReader(xmlString);
        UploadDocument doc = (UploadDocument) unmarshaller.unmarshal(reader);

        Class<?> clazz = (Class<?>) Class.forName(fullyQualifiedClassName);

        UploadResult result = DataUploaderUtil.createObject(doc);

        if (result != null) {
              Object uploadObject = result.getUploadObject();
              if (uploadObject != null && clazz.isInstance(uploadObject)) {
                    return uploadObject;
              }
        }
        return null;

  }

最佳答案

是的,假设调用者拥有类对象(如果他们能够手动转换,他们就会这样做):

public static <T> T getObject(String xmlString, Class<T> clazz) throws Exception {
    ...
    return (T) uploadObject;
}

调用:

Foo f = getObject(someXml, Foo.class);

关于java - 将已转换的对象返回到具体类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081208/

相关文章:

java - Jedis 扫描未找到任何 key

java - 泛型类的 XStream 反序列化返回 java.lang.Object

c - "error: ‘_Generic’ 指定了两个兼容的类型”但在某些编译器上没有

Swift 泛型 : Constrain Type Parameter to Protocol

java - 使用泛型制作链表

java - 通用列表和 for-each 循环

java - 出现错误 : > Process 'command '/Library/Java/JavaVirtualMachines/jdk1. 8.0_77.jdk/Contents/Home/bin/java'' 以非零退出值 1 完成

Java:如何从字符串创建 RSA 公钥

c# - 如何确定给定文件是类文件?

java - Maven Java 不会对非详尽开关发出警告