获取具有泛型信息的类名

Dam*_*ien 3 java generics serialization

在java序列化问题中,我想保存一些类名,我对泛型类有一些问题.例如:
- 如果我有ArrayList<String> listToDump = new ArrayList<String>();
- 如果我取名字:listToDump.getName();或者listToDump.getCanonicalName();
- 我将有 - java.util.ArrayList或者ArrayList
我想拥有java.util.ArrayList<String>ArrayList<String>

有关如何做到这一点的任何想法?
达米安.

Rom*_*man 6

  1. 您描述的案例无法奏效,您可能会这样做 listToDump.getClass().getName()

  2. 由于类型擦除,无法在运行时获取有关泛型类型的信息:

    当实例化泛型类型时,编译器通过称为类型擦除的技术来转换这些类型 - 这是一种编译器删除与类型参数相关的所有信息并在类或方法中键入参数的过程.

  3. 如果你详细描述了你想要解决的问题,那么我们可能会建议你一些解决方法甚至是解决方案.类型擦除不应该​​是一个大问题,它只是可以改变做某事的方式.