मैं है गूगल संग्रह का उपयोग करके संचय के निर्माण के लिए निम्नलिखित कोड:स्काला
val cache = new MapMaker().softValues().expiration(30,
TimeUnit.DAYS).makeComputingMap(
new com.google.common.base.Function[String,Int] {
def apply(key:String):Int ={
1
}
})
और मैं निम्न त्रुटि संदेश मिल रहा है:
error: type mismatch;
found : java.lang.Object with
com.google.common.base.Function[java.lang.String,Int]{ ... }
required: com.google.common.base.Function[?, ?]
new com.google.common.base.Function[String,Int] {
^
मैं क्यों सोच रहा हूँ प्रकार मेल नहीं खाते?
वास्तविक कोड है:
import com.google.common.collect.MapMaker
trait DataCache[V] {
private val cache = new MapMaker().softValues().makeComputingMap(
new com.google.common.base.Function[String,V] {
def apply(key:String):V = null.asInstanceOf[V]
})
def get(key:String):V = cache.get(key)
}
सधन्यवाद, अली
पुनश्च - मैं गूगल-संग्रह v1 उपयोग कर रहा हूँ
काम नहीं करता, अब मैं इस त्रुटि मिलती है: वर्ग प्रकार की आवश्यकता है, लेकिन com.google.common.base.Function [_, _] ने पाया नई com.google.common.base.Function [ _, _] मैंने भी कोशिश की - एक्सप्लेंटिप्स, वास्तव में आउटपुट को समझना वाकई मुश्किल है: java.lang. com.google.common.base.Object के साथ ऑब्जेक्ट करें [_, _]
@Ali: ऐसा लगता है कि आपने केवल पहले सुझाव की कोशिश की थी। मैंने अब दूसरे सुझाव के लिए पूर्ण कोड चिपकाया। साथ ही, कृपया अपने प्रश्न में 'एक्सप्लेंटिप्स' का आउटपुट जोड़ें। –
वास्तव में आउटपुट काफी बड़ा है, मैंने वास्तविक कोड जोड़ा है जो कोई त्रुटि संदेश को पुन: उत्पन्न करने के लिए बस पेस्ट कॉपी कर सकता है। अगर मुझे कुछ और प्रदान किया जाए तो कृपया मुझे बताएं। –