package config; import manager.STableManager; import manager.Table; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; @Table(name = "ExchangeRate") public class SExchangeRate implements BaseConfig { private int id; private int price_1; private float price_2; private float price_3; private float price_4; private float price_5; private float price_6; private float price_7; private float price_8; public static HashMap> doubleIntegerHashMap = new HashMap<>(); //币种 原货币 本货币 @Override public void init() throws Exception { doubleIntegerHashMap = new HashMap<>(); Map config = STableManager.getConfig(SExchangeRate.class); Field[] fields = SExchangeRate.class.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); String temp = "price_"; if (!field.getName().contains(temp)) { continue; } String substring = field.getName().substring(temp.length()); Integer integer = Integer.valueOf(substring); doubleIntegerHashMap.putIfAbsent(integer, new HashMap<>()); HashMap doubleIntegerHashMap = SExchangeRate.doubleIntegerHashMap.get(integer); config.entrySet().forEach(integerSExchangeRateEntry -> { try { if (integer == 1) { doubleIntegerHashMap.put(integerSExchangeRateEntry.getValue().getPrice_1(), Double.valueOf((int) field.get(integerSExchangeRateEntry.getValue()))); } else { float f = (float) field.get(integerSExchangeRateEntry.getValue()); double v = Double.parseDouble(Float.toString(f)); doubleIntegerHashMap.put(integerSExchangeRateEntry.getValue().getPrice_1(), v); } } catch (Exception e) { e.printStackTrace(); } }); } } public int getId() { return id; } public int getPrice_1() { return price_1; } public float getPrice_2() { return price_2; } public float getPrice_3() { return price_3; } public float getPrice_4() { return price_4; } public float getPrice_5() { return price_5; } public float getPrice_6() { return price_6; } public float getPrice_7() { return price_7; } }