首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Titan 0.5.1 AttributeSerializer无法解析

Titan 0.5.1 AttributeSerializer无法解析
EN

Stack Overflow用户
提问于 2014-10-17 16:57:35
回答 1查看 65关注 0票数 0

我对土卫六0.5.1有个小问题。我尝试将我的源代码从0.4.4升级到0.5.1。我有不同的问题,我在新的文档中找不到。

在我的项目中,我有自定义类。当我使用Titan 0.4.4时,我为KryoSerializer编写了以下代码:

代码语言:javascript
复制
    import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

import org.apache.commons.lang.ArrayUtils;

import com.thinkaurelius.titan.core.AttributeSerializer;
import com.thinkaurelius.titan.diskstorage.ScanBuffer;
import com.thinkaurelius.titan.diskstorage.WriteBuffer;

public class CharacteristicSerializer implements AttributeSerializer<Characteristic> {


    public Characteristic read(ScanBuffer buffer) {
        Characteristic object = null;
        ArrayList<Byte> records = new ArrayList<Byte>();

        try {
            while (buffer.hasRemaining()) {
                records.add(Byte.valueOf(buffer.getByte()));
            }

            Byte[] bytes = records.toArray(new Byte[records.size()]);

            ByteArrayInputStream bis = new ByteArrayInputStream(ArrayUtils.toPrimitive(bytes));
            ObjectInput in = new ObjectInputStream(bis);
            object = (Characteristic) in.readObject();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        return object;
    }

    public void writeObjectData(WriteBuffer out, Characteristic charac) {
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ObjectOutput outobj;

            outobj = new ObjectOutputStream(bos);

            outobj.writeObject(charac);
            byte[] propertybyte = bos.toByteArray();

            for (int i = 0; i < propertybyte.length; i++) {
                out.putByte(propertybyte[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public Characteristic convert(Object arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    public void verifyAttribute(Characteristic arg0) {
        // TODO Auto-generated method stub

    }


}

所以当我使用Titan 0.5.1时,我会遇到这样的错误: AttributeSerializer不能被解析成一个类型。

我的问题是:我如何升级我的源代码?

提前感谢所有人

EN

回答 1

Stack Overflow用户

发布于 2014-10-18 01:31:18

AttributeSerializer移至Titan 0.5.0中的attribute子包。变化

import com.thinkaurelius.titan.core.AttributeSerializer;

import com.thinkaurelius.titan.core.attribute.AttributeSerializer;

将0.4.x应用程序移植到0.5.x可能还有其他迁移问题。我只查看了您粘贴的AttributeSerializer类型解析错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26421426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档