我有一个使用 Map 作为字段变量的类:
private Map<String, ?> posts;
在同一个类中,我有一个通用方法:
public <T> void log(T message) {
if (isEnabled) {
Date time = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss:SS");
posts.put(sdf.format(time.getTime()), message);
}
}
但是,我在 posts.put 语句中收到编译器错误,说:
The method put(String, capture#2-of ?) in the type Map<String,capture#2-of ?> is not
applicable for the arguments (String, T)
我对通配符和通用方法有点陌生,所以我做错了什么?