Java 如何在供应商中放置泛型

Java 如何在供应商中放置泛型,java,generics,Java,Generics,这有什么问题吗 public static final <T> Supplier<Map<Task, T>> TASK = () -> new EnumMap<>(Task.class); public static final <T> Supplier<Map<Task, T>> mapFactory() { return () -> new EnumMap<>(Tas

这有什么问题吗

public static final <T> Supplier<Map<Task, T>> TASK = () -> new EnumMap<>(Task.class);
public static final <T> Supplier<Map<Task, T>> mapFactory() {
        return () -> new EnumMap<>(Task.class);
}
如何向该供应商添加泛型

我解决了这个问题:

public static final <T> Supplier<Map<Task, T>> TASK = () -> new EnumMap<>(Task.class);
public static final <T> Supplier<Map<Task, T>> mapFactory() {
        return () -> new EnumMap<>(Task.class);
}
但是,是的,不需要供应商:

public static final <T> Map<Task, T> mapFactory() {
        return new EnumMap<>(Task.class);
}

也许你可以多编写一点代码,这样我们就可以更好地了解情况。这里有两种不同的类型,任务VSTASK对不起,这是一个键入错误。不过,为什么要声明它是退回供应商的呢?您可以将其声明为常规方法,并在需要供应商时将其称为YourClass::mapFactory。但是,如果我想将其作为函数编写,我想知道为什么不能执行以下操作:public static final supplier mapFactory=->new EnumMapTask.class;因为不能声明泛型字段,即具有自己类型变量的字段。