package com.sohu.cache.util; import com.sohu.cache.entity.InstanceInfo; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; /** * 对象转换工具类 * * User: lingguo * Date: 14-5-29 * Time: 下午6:17 */ public class ObjectConvert { private static Logger logger = LoggerFactory.getLogger(ObjectConvert.class); /** * 将ip和port连接起来 * * @param ip * @param port * @return */ public static String linkIpAndPort(String ip, int port) { return ip + ":" + port; } /** * 将实例列表转化为ip1:port1 ip2:port2 * * @param instanceList * @return */ public static String assembleInstance(List<InstanceInfo> instanceList) { if (instanceList.isEmpty()) { return null; } StringBuilder instanceBuilder = new StringBuilder(); for (int i = 0; i < instanceList.size(); i++) { InstanceInfo instanceInfo = instanceList.get(i); if (instanceInfo.isOffline()) { continue; } if (i > 0) { instanceBuilder.append(" "); } instanceBuilder.append(instanceInfo.getIp()).append(":").append(instanceInfo.getPort()); } return StringUtils.trim(instanceBuilder.toString()); } /** * 将百分比的比值转换为对应浮点数 * * @param value 百分比表示 * @param defaultVal 默认值 * @return 转换后的浮点表示 */ public static double percentToDouble(String value, double defaultVal) { double result = defaultVal; if (value == null || value.isEmpty()) { return result; } try { result = Double.valueOf(value.substring(0, value.length() - 1)); } catch (NumberFormatException e) { logger.error(e.getMessage(), e); } return result; } }