Mistři v programování na #hovnokod

Java #4398

Ten pocit keď vám server počas behu vyhodí error na mieste kde je úplne normálny jednoduchý správny príkaz a snaží sa vás presvedčiť, že to čo vidíte v kóde ako Integer nie je Integer ale String :D Tak vám nič iné neostáva ako tento akože Integer čo je v skutočnosti String pretypovať na Integer :D Tak si z toho spravíte Object a z toho String, ktorý parsnete na Integer.... Ultra Logic :D :D Ale funguje to :D

JSONParser parser = new JSONParser();
JSONObject players;
		
try {
	players = (JSONObject) parser.parse(fileText);
} catch (ParseException e) {
	Achievements.ConsoleMsg("§cParser ERROR, Cant load Achievement Signs!");
	e.printStackTrace();
	return;
}
		
HashMap<String, HashMap<Integer, String>> map = new HashMap<String, HashMap<Integer, String>>();
		
for (Object a : players.entrySet()) {
	Entry<String, JSONObject> e = (Entry<String, JSONObject>) a;
	String playername = (String) e.getKey();
	JSONObject signs = e.getValue();
			
	HashMap<Integer, String> mapsigns = new HashMap<Integer, String>();
	for (Object b : signs.entrySet()) {
		Entry<Integer, String> f = (Entry<Integer,String>) b;
		//int id = f.getKey(); // Server error: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
		int id = Integer.parseInt((String)(Object)f.getKey()); //Fix ---> WTF ???!!!! A táto sračka zrazu funguje :D
		String txt = f.getValue();
				
		mapsigns.put(id, txt);
	}
			
	map.put(playername, mapsigns);
}

Martin Bielik Kuma,