首頁 > Java > 主體

如何解析java中相對於泛型類別或介面的實作類別的所有實際類型?

WBOY
發布: 2024-02-12 18:00:08
轉載
1069 人瀏覽過

問題內容

我正在嘗試解析與泛型類別或介面相關的實作類別的所有實際類型。

我為此編寫了一個actualtypeargumentsresolver,但它僅在typename保持一致時才有效。我想忽略 typename 並取得所有實際類型。 我怎樣才能實現這個目標?

任何幫助將不勝感激。謝謝!

@Test
public void testIndirectlyExtendedGenericSuperclassWithDiffTypeName() {

    abstract class AbstractClass3<AAA, BBB, CCC> { }

    abstract class AbstractClass2<AA, BB, CC> extends AbstractClass3<CC, Map, BB> { }

    abstract class AbstractClass1<A, B> extends AbstractClass2<Long, A, Boolean> { }

    class Impl extends AbstractClass1<String, Integer> {}

    Type[] arr = ActualTypeArgumentsResolver.resolve(Impl.class, AbstractClass3.class);

    Assert.assertTrue(arr.length == 3);
    Assert.assertEquals(arr[0], Boolean.class);
    Assert.assertEquals(arr[1], Map.class);
    Assert.assertEquals(arr[2], String.class);
}
登入後複製

解決方法

guavatypetoken 支援此功能。在代表 impltypetoken 上使用 getsupertype 方法來取得 abstractclass3 的參數化版本以及所有實際類型參數。

65蜜蜂58535616

以上是如何解析java中相對於泛型類別或介面的實作類別的所有實際類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板