瀏覽代碼

优化bit转换

AE86 2 年之前
父節點
當前提交
c1bef40d26
共有 1 個文件被更改,包括 11 次插入19 次删除
  1. 11 19
      dbsyncer-connector/src/main/java/org/dbsyncer/connector/schema/BitValueMapper.java

+ 11 - 19
dbsyncer-connector/src/main/java/org/dbsyncer/connector/schema/BitValueMapper.java

@@ -14,8 +14,6 @@ import java.util.BitSet;
  */
 public class BitValueMapper extends AbstractValueMapper<byte[]> {
 
-    private final ByteBuffer buffer = ByteBuffer.allocate(4);
-
     @Override
     protected byte[] convert(ConnectorMapper connectorMapper, Object val) {
         if (val instanceof BitSet) {
@@ -23,28 +21,22 @@ public class BitValueMapper extends AbstractValueMapper<byte[]> {
             return bitSet.toByteArray();
         }
         if (val instanceof Integer) {
-            synchronized (this){
-                buffer.clear();
-                buffer.putInt((Integer) val);
-                buffer.flip();
-                byte[] bytes = new byte[4];
-                buffer.get(bytes);
-                return bytes;
-            }
+            ByteBuffer buffer = ByteBuffer.allocate(4);
+            buffer.putInt((Integer) val);
+            byte[] bytes = new byte[4];
+            buffer.get(bytes);
+            return bytes;
         }
         if (val instanceof Boolean) {
             Boolean b = (Boolean) val;
-            synchronized (this){
-                buffer.clear();
-                buffer.putShort((short) (b ? 1 : 0));
-                buffer.flip();
-                byte[] bytes = new byte[2];
-                buffer.get(bytes);
-                return bytes;
-            }
+            ByteBuffer buffer = ByteBuffer.allocate(2);
+            buffer.putShort((short) (b ? 1 : 0));
+            byte[] bytes = new byte[2];
+            buffer.get(bytes);
+            return bytes;
         }
 
         throw new ConnectorException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));
     }
-
+    
 }