当前位置: 首页 > 知识库问答 >
问题:

类的泛型集合在运行时与序列VersionUID?

严阳秋
2023-03-14

这是在运行时获取泛型集合类的唯一方法吗?

Class<T> clazz = new HashSet<Task>() {
            private static final long serialVersionUID = 8252429191034335636L;
        }.getClass()

我的IDE说:

“serializable类未声明long类型的静态最终SerialVersionId字段”

共有1个答案

宗政唯
2023-03-14

与序列化无关,但:

private static Set<Task> myField;

...

        Field field = MyClass.class.getDeclaredField("myField");
        Type type = field.getGenericType();
        ParameterizedType ptype = (ParameterizedType)type;
        Type[] argTypes = ptype.getActualTypeArguments();
        Type atype = argTypes[0];
        System.out.println(atype.getTypeName());
 类似资料:
  • 问题内容: 如果我有一个通用类: 我想实例化几个项目,例如… …并将它们添加到集合中。如何定义集合,使其可以容纳泛型类型列表?然后,我想在某个时刻迭代集合,并使用Value属性。可能? 问题答案: 让您的泛型类从非泛型基类继承,或实现一个非泛型接口。然后,您可以拥有此类型的集合,并将其转换为用于访问集合内容的任何代码。 这是一个例子。

  • 问题内容: 在解决了之前的问题的基础上,但又导致了另一个问题。如果协议/类类型存储在集合中,则取回并实例化它们会引发错误。下面是一个假设的例子。该范例基于“程序到接口而不是实现”,“程序到接口” 编辑 -我当前的解决方法是遍历集合,但是由于api必须知道各种实现,所以这当然是有限的。另一个限制是这些类型的子类(例如PersianCat,GermanShepherd)将不会调用其重写的函数,否则我将

  • 我需要将包含类型为Pair的对象的列表序列化为xml 首先,我创建了一个类PairList来保存对的列表,然后我创建了一个实际的类,它表示一对两个值,key和value。 然后,我尝试序列化它: 不幸的是,我遇到了一个异常:。欢迎任何关于如何避免此异常并序列化该类的想法。 如果我选择不序列化ttype和utype字段(通过将其设置为受保护或私有),则序列化有效。我不明白为什么它不想序列化类型字段。

  • 问题内容: 好的,因此,我正在设置自己的XML序列化(我知道那里还有其他东西,甚至Java中内置了一些东西,但是我自己学习来做,因为可以使用它非常棒)。我已经序列化了。我目前正在进行反序列化(读取XML文件并基于文件中的数据组装对象),并且在设置通用类型时遇到问题。经过广泛研究,我弄清楚了如何获取类的泛型类型,以便在序列化时可以编写它们,但是我不知道如何执行此操作: 我已经在C#中看到了一些答案,

  • 如果我们提供足够的泛型信息,像Jackson这样的库可以从JSON创建对象。 在杰克逊,我们可以 在这种情况下,我们应该得到 在这种情况下,我们应该得到 在这种情况下,我们应该得到 为了进一步澄清,我希望在不创建任何其他类的情况下获取类型信息,并且这些信息应该传递给序列化程序,即我不希望更改类似于的序列化程序方法签名。我们可以创建任意多的helper类,也可以强制从某个超类扩展有效负载类(超类可以