我想写一个同时返回会话(Cassandra数据库)和连接(MySQL)的泛型函数,可以吗?
下面是我的代码:
def getdb: Session = {
var cluster = Cluster.builder().addContactPoint("127.0.0.1").build()
var session: Session = cluster.connect("keyspace")
if (session.getState != null) {
currentDB = "cassandra"
return session
}
else{
//code for mysql connection
return Connection
}
}我应该如何定义我的函数,以便get db应该返回到它所连接的任何地方。
发布于 2017-11-17 00:10:19
这是不可能的,因为这两个Sessions对象是不同的,尽管它们具有相同的名称。你可以返回一个,但是你仍然需要不同的代码来处理右边和左边。
发布于 2017-11-17 17:09:47
在尝试从语法/返回类型的角度解决这个问题之前,我要考虑另外两点:
发布于 2017-11-17 16:24:27
我认为您可以在一个元组中同时返回这两个参数。无论哪个为null,都应该以Option的形式返回。
一些有用的链接可能会有所帮助:
https://stackoverflow.com/questions/47333602
复制相似问题