reification

    3熱度

    2回答

    我已經理解了RDF中物化的基礎知識。這裏給出兩個明確的解釋:explanation 1 和explanation 2。如果你仔細觀察,實際上我們可以在「地球是圓的」RDF三倍的句子中出現,就像「科學家發現的,地球是圓的」一樣,可以用物化來呈現。在學習具體化,我發現,它也說,它可以表示類似的句子:(使用物化三元) 「約翰相信地球是圓的和簡認爲,世界是平的」。或「馬可尼聲稱發明了收音機,但Bose也是

    6熱度

    2回答

    我有一個包含T和一些元數據的數組(或列表)的接口。 interface DataWithMetadata<T> { val someMetadata: Int fun getData(): Array<T> } 如果我寫的接口的最簡單的實現,我得到一個編譯錯誤的emptyArray():「不能使用T作爲一個具體化的類型參數使用類代替。」 class ArrayWithMe

    7熱度

    2回答

    如果我定義以下通用事件處理程序 trait Handles[E <: Event] { def handle(event: E) } 與事件類型的這樣 trait Event { } class InventoryItemDeactivated(val id: UUID) extends Event; class InventoryItemCreated(val id:

    0熱度

    1回答

    我試圖將我的庫中的函數read和write分別轉換爲運算符函數get和set。我的函數使用了一個泛化的泛型類型,它們也是內聯方法。 (你可以看到我的庫here。) 編譯器沒有讓我通過的問題,我不明白爲什麼使用非運算符函數,推理工作得很好,但使用運算符在運行時失敗。 Exception in thread "main" java.lang.UnsupportedOperationException:

    7熱度

    1回答

    我正在試驗設置未初始化的值值,並試圖讓下面的工作。這主要是對物化泛化的力量(和侷限性)的好奇心。 我正試圖爲數據類的可選參數提供默認值。 inline fun <reified T> uninitialized(): T = when (T::class) { Long::class -> -1L // Type mismatch. Required: T Found: Long

    2熱度

    2回答

    的具體化謂詞變體的冗餘答案我想爲本論壇中的某些 other recent problem提供一個邏輯純解決方案。 作爲開始,我實施了append/3的物化變體,並將其命名爲appendR/4。它是基於@false在Prolog union for A U B U C實施的謂詞if_/3和(=)/3: appendR([],Ys,Zs,T) :- =(Ys,Zs,T). appendR(

    1熱度

    2回答

    我有一個簡單的測試宏,它使用了reify。它在宏擴展期間導致StackOverflowError。 def test() = macro testimpl def testimpl(c:Context)():c.Expr[Any] = { import c.universe._ val o = reify { // StackOverflowError here

    3熱度

    2回答

    在Kotlin有reified generics的有限形式。有沒有什麼辦法可以使用實體過濾泛型類型,而不使用getClass()或as或任何一種奇怪的註釋,即。只需使用is關鍵字?例如,我有以下結構: import java.util.* internal class Layout<out T : LayoutProtocol>(val t: T) { fun getName():

    10熱度

    1回答

    我在科特林下面的方法: inline fun <reified T> foo() { } 如果我試圖從Java這樣調用這個: myObject.foo(); OR這樣的: myObject.<SomeClass>foo(); 我得到以下錯誤: java: foo() has private access in MyClass 如何從Java調用foo方法?

    1熱度

    1回答

    2.10.3的Scala API文檔說我可以「使用refiy生成代表給定Scala表達式的抽象語法樹」。因此,我可以這樣做: scala> val uni = scala.reflect.runtime.universe uni: scala.reflect.api.JavaUniverse = [email protected] scala> uni reify { 1 to 3 } r