将来自 Objectify 的结果以人类可读的形式保存在数据存储中

Save result from Objectify in human readable form in datastore

我正在尝试创建一个事件日志(例如 ORMSLOG),它将事件以人类可读的形式保存在数据存储区中。

这样做应该会写入可读事件:

List<Device> devices = ofy().transactionless().load().type(Device.class).list(); ORMSLOG.log(ORMSLOG.GET_ALL_DEVICES, "Devices found: " + String.valueOf(devices));

ORMSLOG 是一个简单的 class。

public class ORMSLOG {
    public final static String CREATE_DEVICE = "Create Device";
    public final static String GET_ALL_DEVICES = "Get all Devices";

    public static void log(final String event, final String data) {
        ofy().save().entity(new Event(event, data)).now();
    }
}

但是 Datastore 中保存的数据不可读,看起来像这样:

ORMSLOG data

我需要将对对象的引用转换为人类可读的文本。

您只是在记录对象的字符串表示形式,这是通过调用 toString 方法完成的。由于您没有覆盖 Device class 中的 toString 方法,您将获得指向对象的指针。如果您将设备 class 中的 toString 方法重写为 return 您想要 return 的任何状态,您会看到更好的结果。大多数 IDE(例如 Eclipse)都有为您生成 toString 方法的选项。