// todo func initConstantStaticFields(class *rtc.Class) { cp := class.ConstantPool() for _, field := range class.Fields() { if field.IsStatic() && field.IsFinal() { kValIndex := uint(field.ConstValueIndex()) if kValIndex > 0 { slotId := field.SlotId() staticSlots := class.StaticFieldSlots() switch field.Descriptor() { case "Z", "B", "C", "S", "I": staticSlots[slotId] = cp.GetConstant(kValIndex).(int32) case "J": staticSlots[slotId] = cp.GetConstant(kValIndex).(int64) case "F": staticSlots[slotId] = cp.GetConstant(kValIndex).(float32) case "D": staticSlots[slotId] = cp.GetConstant(kValIndex).(float64) case "Ljava/lang/String;": staticSlots[slotId] = JString(cp.GetConstant(kValIndex).(string)) } } } } }