簡體   English   中英

如何在 Java 中鍵入此 Gremlin 響應?

[英]How to type this Gremlin response in Java?

我想執行以下 gremlin 查詢:

results = traversal.path().by(valueMap()).toList();

我想獲取這些對象並將它們運回強類型 API。為此,我必須在事物的 gremlin 方面做一些放松。 但首先我需要一個 object 的類型。

那么...這里的返回類型是什么? 我可以在不轉換為Object的情況下獲得返回類型嗎? 有什么方法可以在運行時檢查 Java 中的這個,或者 Java 是否像我一直懷疑的那樣無法使用?

IDE 沒有提供任何建議,而是給我一個可怕的警告:

未經檢查的分配:“java.util.List”到“java.util.List<java.util.List<java.util.Map<java.lang.String,java.lang.Object>>>”。 ** 這就是我現在正在嘗試的** 原因:'traversal.path().by(valueMap())' 具有原始類型,因此 toList 的結果被刪除

有任何想法嗎?

您可以從以下位置獲取 path() 步驟的結果類型:

gremlin> g.V().path().by(valueMap()).next().getClass()
==>class org.apache.tinkerpop.gremlin.process.traversal.step.util.MutablePath

您可以在以下位置找到相應的接口: https://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/process/traversal/step/util/MutablePath.html

因此,就接口而言,結果類型是:

List<Path<Map<String, Object>>>

如果你想要根據實際類的結果類型,你可以這樣做:

gremlin> g.V().path().by(valueMap()).toList().getClass()
==>class java.util.ArrayList
gremlin> g.V().valueMap().next().getClass()
==>class java.util.LinkedHashMap

你得到:

ArrayList<MutablePath<LinkedHashMap<String, Object>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM