2017-10-16 76 views
0

我有以下一个项目,包含下面的代码:无形错误:未发现:价值二

package ch.khinkali 

import shapeless.{::, HList, HNil} 


trait Second[L <: HList] { 
    type Out 

    def apply(value: L): Out 
} 

object Second { 
    type Aux[L <: HList, O] = Second[L] {type Out = O} 

    def apply[L <: HList](implicit inst: Second[L]): Aux[L, inst.Out] = 
    inst 
} 


object Main { 

    implicit def hlistSecond[A, B, Rest <: HList]: Second.Aux[A :: B :: Rest, B] = 
    new Second[A :: B :: Rest] { 
     type Out = B 

     def apply(value: A :: B :: Rest): B = 
     value.tail.head 
    } 

    def main(args: Array[String]): Unit = { 

    val second1 = Second[String :: Boolean :: Int :: HNil] 
    println(second1) 
    } 

} 

当我尝试在Shell如下:

val second1 = Second[String :: Boolean :: Int :: HNil] 

它显示错误消息:

error: not found: value Second 

我确实导入了包装,如下图所示:

enter image description here

我在做什么错?

回答

2

尝试通配符进口:

import ch.khinkali._ 
import shapeless._ 
import ch.khinkali.Main._ 
+0

我已经得到了进一步的错误'的错误:错号码的类型参数::应该是1' –

+0

@zero_coding更新。 –

+0

再次出现错误'错误:无法找到参数inst的隐式值:ch.khinkali.Second [String :: Boolean :: Int :: shapeless.HNil]',\t虽然我确实有它的实例,您可以看到上面的代码。 –