gpt4 book ai didi

Java 泛型 - 格式化程序图

转载 作者:行者123 更新时间:2023-11-29 03:21:42 24 4
gpt4 key购买 nike

<分区>

A Formatter<T>知道如何格式化 T字符串:

public interface Formatter<T> {
String format(final T t);
}

我想要一个 Map格式化程序,一个用于 Integer , 一个用于 Date等:

Map<Class, Formatter> formatters;

预期用途是:

formatters.put(Integer.class, new Formatter<Integer>() {
public String format(Integer i) {
return i.toString;
}
});

有没有什么方法可以强制键值对 Class 达成一致?类型?如果我说 put(Integer.class, new Formatter<Integer>(){...})它会工作但是put(Integer.class, new Formatter<Date>(){...})不会吧?

我现在尝试的是使用 ?作为类型:

Map<Class<?>, Formatter<?>> formatters;

但是我不能在这张 map 中使用格式化程序:

Object obj = Integer.valueOf(15);
formatters.get(obj.getClass()).format(obj);
Error: The method format(capture#3-of ?) in the type Formatter<capture#3-of ?> is not applicable for the arguments (Object)

欢迎任何澄清。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com