Java 检索表名列表

Java 检索表名列表,java,rethinkdb,reql,Java,Rethinkdb,Reql,我想获取数据库中的表列表 表示此方法返回字符串列表,但事实并非如此。它实际上返回一个TableList对象 当我跑的时候 r.db(“测试”).tableList().run(conn); 我得到一个Result对象作为结果,其中一个条目实际上是一个ArrayList,包含我想要的所有表名 那么,这就是现在应该怎么做的: Connection-Connection=r.Connection().hostname(默认主机名).port(默认端口).connect(); Object table

我想获取数据库中的表列表

表示此方法返回字符串列表,但事实并非如此。它实际上返回一个
TableList
对象

当我跑的时候

r.db(“测试”).tableList().run(conn);
我得到一个
Result
对象作为结果,其中一个条目实际上是一个
ArrayList
,包含我想要的所有表名

那么,这就是现在应该怎么做的:

Connection-Connection=r.Connection().hostname(默认主机名).port(默认端口).connect();
Object tableListObject=r.db(默认值)。tableList()。运行(连接)。单一();
if(集合的tableListObject实例){
List tableList=新的ArrayList((集合)tableListObject);
for(对象表名:tableList){
System.out.println(表名);
}
}
对我来说似乎很复杂,有没有官方/更好的方法


我使用的是RejectionDB Java驱动程序版本2.4.4。

您可以利用
run()
方法,该方法允许您指定返回结果的类-在本例中是字符串数组:

Connection conn = r.connection().hostname("localhost").port(32769).connect();
List<?> tables = r.db("test").tableList().run(conn, ArrayList.class).first();
if (tables != null) {
    tables.forEach(System.out::println);
}

更新为使用@Johannes建议的
列表

@DevilsHnd您知道您的链接将我发送到这个问题吗。。我的道歉@Johannes,我没有意识到这一点,现在我找不到想要的链接(我相信我最初是从这里得到它的,但似乎可以继续挖掘它。在SO线程中几乎没有答案,这可能会有所帮助。再次,我道歉。@DevilsHnd无需担心..那更好..甚至可以使用
列表表=…
来避免未经检查的施法警告。是的-谢谢你指出这一点。我不知怎么管理了它。)我想禁用IDE中的警告检查。我永远不会注意到。。。
movies
tv_shows