static public CodeAttribute unbox(CodeAttribute ca, String desc) {
        char type = desc.charAt(0);
        switch (type) {
            case 'I':
                return unboxInt(ca);
            case 'J':
                return unboxLong(ca);
            case 'S':
                return unboxShort(ca);
            case 'F':
                return unboxFloat(ca);
            case 'D':
                return unboxDouble(ca);
            case 'B':
                return unboxByte(ca);
            case 'C':
                return unboxChar(ca);
            case 'Z':
                return unboxBoolean(ca);
        }
        throw new RuntimeException("Cannot unbox unkown primitive type: " + type);
    }