我想变得懒惰,并且在我的所有其他Pages继承自的抽象Page类中,有一个提交"方法.我还希望该方法重新创建下一个Page子类并返回它.这是我在Page类中的内容:def submitExpecting[P <: Page[P]](implicit m: Manifest[_]): P = { driver.findElement(By.xpath("//input[@type='submit']")).click m.erasure.getConstructor(classOf[WebDriver]).newInstance(driver).asInstanceOf[P]}这就是我的称呼方式:val userHomePage = userSignupPage .login("graham") .acceptTermsAndConditions .submitExpecting[UserHomePage]对此进行编译,我得到:error: could not find implicit value for parameter m: Manifest[_].submitExpecting[UserHomePage]我以为我很聪明,但显然我并不聪明. ;)我在做什么错了?解决方案您需要使Manifest与类型参数相关,即def submitExpecting[P <: Page[P]](implicit m: Manifest[P]): PI'm doing some WebDriver+PageObject stuff.(If your not familiar with PageObjects, this is a pattern where you have a class representing each page on your site which exposes all the functions of the page using the domain language, hiding the HTML stuff from the test.)I want to be lazy and have one 'submit' method in my abstract Page class that all my other Pages extend from. I also want this method to new up the next Page subclass and return it.Here is what I have in the Page class:def submitExpecting[P <: Page[P]](implicit m: Manifest[_]): P = { driver.findElement(By.xpath("//input[@type='submit']")).click m.erasure.getConstructor(classOf[WebDriver]).newInstance(driver).asInstanceOf[P]}and here's how I'm calling it:val userHomePage = userSignupPage .login("graham") .acceptTermsAndConditions .submitExpecting[UserHomePage]Compiling this, I get:error: could not find implicit value for parameter m: Manifest[_].submitExpecting[UserHomePage]I thought I was being smart, but clearly I'm not. ;)What am I doing wrong? 解决方案 You need to make your Manifest be related to the type parameter, i.e.def submitExpecting[P <: Page[P]](implicit m: Manifest[P]): P 这篇关于如何在运行时使用Scala的清单类实例化已擦除的类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!