2017-05-03 4 views
8

में एचएलिस्ट के प्रकार को कैसे दिखाया जाए, मैं स्ट्रिंग के रूप में एचएलिस्ट का प्रकार कैसे प्राप्त करूं ताकि मैं इसे प्रिंट कर सकूं। जैसे "Int :: Long :: String :: HNil"स्कैला आकारहीन

val gen = Generic[?] 
val typeString: String = ??? 
println("The type is " + typeString) 

मुझे पता है इसके बारे में स्ट्रिंग बहुत उपयोगी नहीं है और आम तौर पर आप gen.Repr

+0

http://stackoverflow.com पर एक नज़र/प्रश्न/34016881/labelledgeneric-टू-मिल-वर्ग-नाम – Yaneeve

उत्तर

5

उपयोग से प्रकार shapeless.Typeable हैं:

scala> import shapeless._ 
import shapeless._ 

scala> case class A(i: Int, s: String) 
defined class A 

scala> val gen = Generic[A] 
gen: shapeless.Generic[A]{type Repr = 
    shapeless.::[Int,shapeless.::[String,shapeless.HNil]]} = 
    [email protected] 

scala> println(Typeable[gen.Repr].describe) 
Int :: String :: HNil