所以我有一個抽象實體Compound
和一個抽象服務CompoundService<T extends Compound>
。將類對象映射到通用對象
還有另一個服務類需要訪問CompoundService<T extends Compound>
(任意編號,實現未知的編譯時)的任何實現。這在1個特定的方法中是必需的,並且該方法可以採用類參數Class<? extends Compound>
。
問題是如何將類安全地映射到相應的服務類?
類似不起作用,因爲我需要CompoundService
的通用參數是特定的而不是通配符。
我不知道如何解釋這一點。但是compoundService.getById(compoundId)
返回Compound
類型的實例T
或compoundService.save(compound)
要求compound
的類型爲T
。這意味着,
Map<Class<? extends Compound>, CompoundService<? extends Compound>> services = //...;
CompoundService<T> compoundService = services.get(compoundClass);
不起作用爲CompoundService<? extends Compound>>
不能轉換爲CompoundService<T>
。
嗯,不知道這是否有幫助。問題是Class對象Class<? extends Compound>
到這個「types」服務類別CompoundService<? extends Compound>
的映射。
任何想法,我可以如何實現這一點?