type-erasure

    5熱度

    2回答

    考慮一個泛型函數: def genericFn[T](fn: T => Boolean): Unit = { // do something involves T } 是不可能性限制T(在編譯時)是一個簡單的類型,而不是一個類型像List[Int]? 下屬的問題,我想解決的是這樣的: var actorReceive: Receive = PartialFunction.empty

    2熱度

    1回答

    所以我現在正在度假,沒有電腦。但...不能停止考慮代碼。完全癡迷。無論如何,我自己不能測試這個現在,所以問這裏如果這將工作: public <T> void foo(T t){ doSomething(T.class); } 我知道所有類型擦除,但從來沒有想過這種方式。在這種情況下,T將成爲傳遞給此方法的實際對象,這要感謝泛型在運行時使用的隱式轉換,實際的類類型T是否會在運行時傳遞

    1熱度

    1回答

    這是事情。 我們在我們的應用程序中使用了很多Wicket Panels,並且爲了測試目的,它們應該在一般情況下生成。在理論上,這部分工作:對於構造函數中的每個參數類型,我只提供一個可能的參數,因此它是查找這些參數類型是什麼的問題 - 反射。 問題是:類型擦除。許多構造函數使用類的多個版本作爲具有各種不同類型參數的參數。類型擦除意味着,據我所知,我無法在運行時區分它們。 那麼,在這種情況下,是否有任

    1熱度

    1回答

    任何人都可以解釋爲什麼會發生? scala> def as[T](v: Any) = Try(v.asInstanceOf[T]) as: [T](v: Any)scala.util.Try[T] scala> as[Int]("Hello") res0: scala.util.Try[Int] = Success(Hello) scala> res0.map(_ + 1) res1

    1熱度

    2回答

    我正在將Java庫移植到Swift 2.0並且在泛型中遇到一些麻煩。 我有以下協議層次: public protocol Graph { typealias V: Hashable typealias E: Hashable func getAllEdges(sourceVertex: V, targetVertex: V) -> Set<E>? func

    1熱度

    1回答

    我有許多類都需要一個未指定類型的對象並返回一個固定類型的結果。此外,這些對象是模板化的,它改變了結果的計算。我想將這些對象隱藏在一個通用接口後面。下面的例子應該說清楚。 struct Work是接口,並存在多個類如struct WorkImpl。此外還有多種類型,如struct A和struct B,它們相互作用。在我的情況下,它們也是模板化的,不能是多態的。問題是如何將工作調用「轉發」給Work

    0熱度

    3回答

    我介紹了抽象動物類是其子類的抽象actor類。我現在面臨的問題是,兔類動作方法(動物的一個子類)不起作用。 我收到以下錯誤 「兔子不是抽象的,在動物不重寫抽象方法act(java.util.List<Actor>)」 我認爲,在兔子的行爲方法狐狸會覆蓋在動物的行爲方法和演員。我如何解決這個問題? 下面是在Actor類的抽象方法 abstract public void act(List<Actor

    1熱度

    2回答

    我正在瀏覽這個頁面,只是玩它提供的例子。 http://docs.oracle.com/javase/tutorial/java/generics/bridgeMethods.html 我使用Java 8 根據本教程頁面,則ClassCastException應在該行200被拋出,但實際上它是較早拋出 - 在標記爲100爲什麼行? !該教程是否過時(不適用於Java 8)? 然後,我問的n所有方法

    1熱度

    1回答

    假設我保持T某一類的子類,的註冊表: public class ClassRegistry<T> { Set<Class<? extends T>> klasses; ... public void register(Class<? extends T> klass) { klasses.add(klass); } 你與像registry.r

    7熱度

    2回答

    我在回顧Java泛型上的一個Oracle路徑,標題爲「Effects of Type Erasure and Bridge Methods」,並且我無法說服自己給出解釋。好奇的是,我在本地測試了這些代碼,甚至無法重現線索解釋的行爲。下面是相關代碼: public class Node<T> { public T data; public Node(T data) { this