Providing I am using Java correctly, I'm creating a HashMap<long,string> (and it has to be a Long, because you can't use primitive types, for some bizarre reason), and then the "put" method does, indeed, mandate that I'm using a Long and a String, but the "get" takes an object, and the toArray returns an array of _objects_. What the fuck? What is the point of specifying types if the compiler is going to just ignore them?
I feel terribly spoiled by working with a language which does what you bloody well tell it to, rather than being a half-assed job to give you the appearance of doing something useful without finishing the job.
Original post on Dreamwidth - there are comments there.