# What SimpleKeyGenerator actually puts in the map cache "shapes" after three calls with 0, 1 and 2 arguments: cache "shapes": key abc [String] -> one:abc key SimpleKey [abc, 7] [SimpleKey] -> two:abc:7 key SimpleKey [] [SimpleKey] -> zero Zero arguments -> the SimpleKey.EMPTY constant, printed as [] One argument -> that argument itself, unwrapped Two or more -> a SimpleKey holding all of them The method name and the declaring class appear nowhere in the key.