【问题标题】:Cassandra: Get equivalent Java Class for DataTypeCassandra:为 DataType 获取等效的 Java 类
【发布时间】:2015-10-21 12:07:15
【问题描述】:

似乎在 2.2. Java 驱动程序的版本,在 DataType 中,删除了以前版本中的方法“asJavaClass()”。有谁知道如何为给定的 DataType 获取等效的 Java 类。

提前致谢

阿尔托伯

【问题讨论】:

    标签: java cassandra key-value-store


    【解决方案1】:

    随着 2.2 中自定义编解码器的引入,没有预先建立到给定 Java 类的映射,这取决于注册的编解码器以及您调用哪个 getter 方法来检索值。充其量我们可以提供由内置编解码器生成的“默认”映射。您需要它用于什么用例?

    【讨论】:

    • 您好,感谢您的回答。我正在使用 row.get(int i, Class> clazz),我根据此处的列表进行解释:docs.datastax.com/en/developer/java-driver/2.0/java-driver/… 基本上,给定一行我需要知道哪些类型存储在那里并解释它们Java 类。
    • 我认为 getObject(i) 是你要找的。​​span>
    • 是的,但是我不能动态知道对象的子类型,对吗?除非我检查所有可能的类型或使用反射对吗?
    • 好吧,您可以使用object.getClass() 并使用它来处理您正在使用asJavaClass() 的结果所做的任何事情。几乎是一样的(除了将作为实现的集合,例如 ArrayList 而不是 List)。
    • 让我问你一个相关的问题:这意味着没有预先建立的映射,我不必担心输入数据的类型?例如,我可以拥有一个 byte[] 键而不将其包装到 ByteBuffer 中吗?例如,这行得通吗? session.execute(boundStatement.bind(key)); key 的类型为 byte[]。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多