Java泛型 - 获取参数访问权限

Exi*_*iRe 3 java generics

我有下一个代码:

class iCache<K,V> implements Map<Object, Object>
{
...//Code
}
Run Code Online (Sandbox Code Playgroud)

如何获得K和V的班级名称?

mmc*_*omb 7

你不能,编译器在编译时执行类型擦除.换句话说,K和V类型参数纯粹是编译时的概念,它们在运行时是不可访问的.

您可以做的是在运行时获取自定义Map类型中的键/值类.

  • 值得注意的是,运行时键/值的类可以与实际参数不同(它可以是K和V的子类). (3认同)

Oli*_*rth 5

你不能.Java泛型不起作用.在运行时,没有可用的特定于类的信息(这称为erasure).如果您确实需要此信息,则必须传入Class对象.