相关疑难解决方法(0)

什么是原始类型,为什么我们不应该使用它?

问题:

  • 什么是Java中的原始类型,为什么我经常听说不应该在新代码中使用它们?
  • 如果我们不能使用原始类型,它有什么替代方案,它是如何更好的?

java generics raw-types

617
推荐指数
13
解决办法
20万
查看次数

Consumer <T>在HashMap中映射了Class <T>

我想创建一个IdentityHashMap<Class<T>, Consumer<T>>.基本上,我想用一种方法来映射一个类型,说明如何处理这种类型.

我想动态地能够用对象X说,执行Y.我能做到

private IdentityHashMap<Class<?>, Consumer<?>> interceptor = new IdentityHashMap<>();
Run Code Online (Sandbox Code Playgroud)

但它很糟糕,因为我在使用它时必须在lamba中投射对象.

例:

interceptor.put(Train.class, train -> {
    System.out.println(((Train)train).getSpeed());
});
Run Code Online (Sandbox Code Playgroud)

我想做的是

private <T> IdentityHashMap<Class<T>, Consumer<T>> interceptor = new IdentityHashMap<>();
Run Code Online (Sandbox Code Playgroud)

但似乎不允许这样做.有没有办法做到这一点 ?使用此类型的方法映射类型的最佳解决方法是什么?

java generics dictionary type-safety java-8

6
推荐指数
2
解决办法
3148
查看次数

标签 统计

generics ×2

java ×2

dictionary ×1

java-8 ×1

raw-types ×1

type-safety ×1