Java转Scala:unwrap方法参数转换报错问题咨询
解决Scala中OlapConnection.unwrap方法的参数问题
我明白你现在遇到的问题了——把这段Java代码转成Scala时卡在了unwrap方法的参数上:
Connection connection = DriverManager.getConnection("jdbc: ...");
OlapConnection olapConnection = connection.unwrap(OlapConnection.class);
你尝试的Scala代码里,OlapConnection.getClass报错是因为在Scala中,OlapConnection作为类对象(对应Java里类的静态部分),并没有getClass这个成员方法。getClass是实例方法,只能在类的实例上调用,而你这里需要的是获取类的Class对象,对应Java里的OlapConnection.class。
在Scala里,获取类的Class实例的正确写法是用classOf[T],所以修正后的代码应该是这样:
val connection = DriverManager.getConnection("jdbc: ...") val olapConnection = connection.unwrap(classOf[OlapConnection])
简单总结下:Scala里用classOf[类名]替代Java里的类名.class,这是两者在获取类元数据时的语法差异,记住这个小区别就能轻松避开这类问题啦。
内容的提问来源于stack exchange,提问作者ps0604
相关产品推荐
相关产品推荐

