是否可以从泛型类中获取.class?

时间:2011-10-01 22:15:09

标签: java protocol-buffers

如何做一件事:

Schema<ArrayList<UnitInstanceData>> scheme = 
        RuntimeSchema.getSchema(ArrayList<UnitInstanceData>.class));

1 个答案:

答案 0 :(得分:3)

.class运行时对类对象的访问权限。在运行时,泛型已经消失,已被“类型擦除”消除。在您的示例中,您只能获得ArrayList.class。如果您需要在运行时知道泛型类的类型,则必须传递第二个参数,如

RuntimeSchema.getSchema(ArrayList.class, UnitInstanceData.class));