改写Message.setKeys

public void setKeys(Collection<String> keys) {
        StringBuilder sb = new StringBuilder();
        for (String k : keys) {
            sb.append(k).append(MessageConst.KEY_SEPARATOR);
        }
        this.setKeys(sb.substring(0, sb.length() - MessageConst.KEY_SEPARATOR.length()));
}

转载于:https://my.oschina.net/duckegg/blog/1536832

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以从以下几个方面对代码进行逻辑优化: 1.使用变量名替换重复的字符串 例如,可以将“BUOY_LIST”替换为变量名,避免多次使用字符串常量导致代码可读性降低。 2.使用TryGetValue方法替换ContainsKey方法 TryGetValue方法可以避免重复获取数据,提高代码的效率。使用TryGetValue方法可以将代码改写为以下形式: ``` if (ConfigsData.TryGetValue(variableName, out JsonData jsondataMessage)) { for (int i = 0; i < jsondataMessage.Count; i++) { JsonData message = jsondataMessage[i]; BUOY buoy = new BUOY() { BUOY_NAME = message.GetStringValue("BUOY_NAME"), LONGITUDE = message.GetDoubleValue("LONGITUDE"), LATITUDE = message.GetDoubleValue("LATITUDE"), IN_SCREEN = message.GetBoolValue("IN_SCREEN"), CAMERA_POSITION_X = message.GetDoubleValue("CAMERA_POSITION_X"), CAMERA_POSITION_Y = message.GetDoubleValue("CAMERA_POSITION_Y"), CAMERA_POSITION_Z = message.GetDoubleValue("CAMERA_POSITION_Z"), CAMERA_ROTITION_X = message.GetDoubleValue("CAMERA_ROTITION_X"), CAMERA_ROTITION_Y = message.GetDoubleValue("CAMERA_ROTITION_Y"), }; if (message.TryGetValue("IS_RED_COLOR", out JsonData isRedColor)) { buoy.IS_RED_COLOR = isRedColor.ToBool(); } BUOY_LIST.Add(buoy); } } ``` 3.使用变量缓存方法调用结果 调用GetValue方法会产生一些开销,可以通过使用变量缓存方法调用结果来提高代码的效率。例如,可以将message.GetStringValue("BUOY_NAME")替换为以下形式: ``` string buoyName = message.GetStringValue("BUOY_NAME"); BUOY buoy = new BUOY() { BUOY_NAME = buoyName, // ... }; ``` 将上述优化措施结合起来,可以得到以下优化后的代码: ``` public static void GetValue(JsonData ConfigsData) { string variableName = "BUOY_LIST"; if (ConfigsData.TryGetValue(variableName, out JsonData jsondataMessage)) { for (int i = 0; i < jsondataMessage.Count; i++) { JsonData message = jsondataMessage[i]; string buoyName = message.GetStringValue("BUOY_NAME"); double longitude = message.GetDoubleValue("LONGITUDE"); double latitude = message.GetDoubleValue("LATITUDE"); bool inScreen = message.GetBoolValue("IN_SCREEN"); double cameraPositionX = message.GetDoubleValue("CAMERA_POSITION_X"); double cameraPositionY = message.GetDoubleValue("CAMERA_POSITION_Y"); double cameraPositionZ = message.GetDoubleValue("CAMERA_POSITION_Z"); double cameraRotationX = message.GetDoubleValue("CAMERA_ROTITION_X"); double cameraRotationY = message.GetDoubleValue("CAMERA_ROTITION_Y"); BUOY buoy = new BUOY() { BUOY_NAME = buoyName, LONGITUDE = longitude, LATITUDE = latitude, IN_SCREEN = inScreen, CAMERA_POSITION_X = cameraPositionX, CAMERA_POSITION_Y = cameraPositionY, CAMERA_POSITION_Z = cameraPositionZ, CAMERA_ROTITION_X = cameraRotationX, CAMERA_ROTITION_Y = cameraRotationY, }; if (message.TryGetValue("IS_RED_COLOR", out JsonData isRedColor)) { buoy.IS_RED_COLOR = isRedColor.ToBool(); } BUOY_LIST.Add(buoy); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值