Je viens de passer à Luna (de Kepler) et j’ai remarqué un petit problème (encore agaçant):
La complétion automatique ne permet pas de générer des diamants “” pour les génériques déjà spécifiés en initialisation de variable. Par exemple, lorsque je tape:
Set mySet = new HashSet
Je m’attendrais à ce qu’il soit complété automatiquement
Set mySet = new HashSet();
plutôt que
Set mySet = new HashSet();
J’utilise JDK 1.7 et le niveau de conformité est défini sur 1.7 également.
Il est également très étrange que lorsque j’appuie plusieurs fois sur STRG + Space pendant l’auto-complétion jusqu’à atteindre à nouveau l’auto-complétion Java, puis que j’appuie sur Entrée, les diamants attendus sont livrés.
Cela ressemble beaucoup à un bug pour moi.
Ce bogue est-il “connu” et existe-t-il une solution de contournement à ce problème? Impossible de trouver quoi que ce soit lié à ce sujet.
Vous avez probablement installé le plug-in Code Recommenders . Malheureusement, ce plug-in est affecté par le bogue n ° 435597 qui rompt cette fonctionnalité.
Ce bogue ne semble se produire que si certains types de propositions sont activés dans la « liste d’assistance de contenu par défaut » ( Préférences Eclipse> Java> Editeur> Assistant de contenu> Avancé ). Par exemple, je pourrais obtenir le comportement correct en désactivant les types de proposition suivants:
(le dernier est probablement le plus ennuyeux si vous utilisez des modèles de code…)
Lorsque vous utilisez Ctrl + Espace , vous atteignez réellement les « propositions Java » (au lieu des « propositions Java intelligentes (recommandations de code) »), qui ne sont pas affectées par ce bogue.
Ce bogue est prévu pour la version 2.2.0 en juin 2015. Le mieux que vous puissiez faire pour le moment est:
Set
est une interface plutôt qu’une implémentation, de sorte que l’EDI ne peut que supposer que vous souhaitez un type interne anonyme qui requirejs toujours le paramètre de type générique. Vous pourriez faire
Set mySet = new HashSet + CTRL + SPACE
Cette fonctionnalité est introduite dans jdk 1.8 et ne fonctionne pas avec jdk 1.7.
C’est donc la nouvelle fonctionnalité introduite par Oracle.
Ainsi, cela ne dépend que de la version de jdk sur votre ordinateur et non de la version de ide.