Java 泛型方法中的泛型类

Java 泛型方法中的泛型类,java,generics,Java,Generics,我正在使用Mockito mock框架来模拟Java中的一个泛型类。从文档中可以很清楚地看到框架的用法,我没有找到模仿泛型类的例子。模拟框架包含以下方法: public static <T> T mock(Class<T> classToMock) { ... } java中的泛型是通过类型擦除实现的。这意味着参数化类由编译器检查,但在运行时所有类都是“原始的”(出于可追溯性原因)。这样做的结果是,只有一个Class对象表示IState,而不是对应于所有可能参数

我正在使用Mockito mock框架来模拟Java中的一个泛型类。从文档中可以很清楚地看到框架的用法,我没有找到模仿泛型类的例子。模拟框架包含以下方法:

public static <T> T mock(Class<T> classToMock) {
    ...
}

java中的泛型是通过类型擦除实现的。这意味着参数化类由编译器检查,但在运行时所有类都是“原始的”(出于可追溯性原因)。这样做的结果是,只有一个Class对象表示
IState
,而不是对应于所有可能参数的无限多个类


要禁用警告,请在行的前面添加
@SuppressWarning(“unchecked”)

由于这是一个测试(我假设是因为mockito),您可以忽略警告,没有
IState。class
for
。class
@RC:我可以这样做,但我仍然很好奇Java是如何处理这些事情的。但是在这种情况下,如何消除警告?这是有效的,除了它被称为
@SuppressWarnings(“unchecked”)
,我必须将它放在方法之前。而且,它不是很优雅。
IState<StateId, Event> mockState = Mockito.mock(IState.class);
Type safety: The expression of type IState needs unchecked conversion to conform to IState<StateId,Event>
IState<StateId, Event> mockState = Mockito.mock(IState<StateId, Event>.class);
IState<StateId, Event> mockState = Mockito.mock(IState.class<StateId, Event>);