Il existe des méthodes telles que celles-ci qui nécessitent des littéraux de classe comme argument. ou p> Le problème se présente quand j'ai besoin de Fournir des classes spécifiques génériques telles que P> EmpInfo<String>
Razmataz<Integer>
3 Réponses :
Vous ne pouvez pas.
Utilisez un casting dangereux: p>
Citation de Java Generics and Collections , Section 7.2:
Les littéraux de classe sont également restreints; Il n'est même pas valide syntaxiquement de fournir un paramètre de type au type d'une classe littérale. Ainsi, le fragment suivant est illégal: p> blockQuote>
xxx pré> En effet, la grammaire de Java fait une phrase telle que la précédente difficile à analyser, et peut déclencher une cascade d'erreurs de syntaxe [...] p>
Ce problème de syntaxe conduit à une irrégularité. Partout ailleurs qu'un type réifiable est requis, vous pouvez fournir un type brut (tel que la liste
code>) ou un type paramétré avec des caractères génériques sans bornes (telles que la liste
> Code>) . Cependant, pour les jetons de classe, vous devez fournir un type brut; Même les caractères génériques non liés ne peuvent pas apparaître. Remplacement de la liste
code> avec la liste > Code> dans le code précédent conduit à une cascade d'erreur similaire. P> blockQuote>
Donc, vous n'avez aucun choix, mais utilisez uniquement des types bruts dans les jetons de classe, comme p>
xxx pré> p>
Quelqu'un a laissé une réponse courte mais concise ici, que j'étais sur le point de choisir comme réponse. Malheureusement, cette personne a supprimé cette réponse. Si cette personne serait si gentille de ré-poster cette réponse pour moi de choisir. En attendant, laissez-moi indiquer cette réponse et comment je l'ai fait usage.
C'est ce que j'aurais dû penser à fort>, p> Basing sur la réponse qui a été supprimé, P> J'aurais une paire d'interface de base Razmataz de base, ce qui fait beaucoup de choses que je suis trop paresseux pour répéter. P> Le concept ne doit pas instantifier la poignée RazmatazasynCrpc à la classe de base mais à la classe dérivée. p> pour t = string p> Sinon, je devrais répéter ~ 100 lignes de code, ~ 50 chacune pour Razmataz et Razmatazasync, sur différentes valeurs paramétriques de chaîne, carte, booléen, entier, etc. p> la base Le principe de surmonter de cette obstacle était - je suis paresseux de répéter ces lignes. P> p>