Je retourne des collections vides vs. NULL chaque fois que possible. Je bascule entre deux méthodes pour le faire en utilisant Java. util.Collections : où etc. P> Je vois cette méthode dans l'explorateur de package Eclipse: P> videyliste () code> est censé être sûr. Mais j'ai récemment découvert: p>
<clinit> () : void
4 Réponses :
return Collections.<ComplexObject> emptyList(); Using this will get rid of warnings from Eclipse about non-generic collections.Having said that, a typed empty list is going to be functionally identical to an untyped empty list due to empty list being immutable and Java erasing generic types at compile time.
@Tom Hawtin - Tackline: "Vous voudrez peut-être envisager de l'utiliser simplement pour vous débarrasser des avertissements d'Eclipse sur l'utilisation de collections non génériques." En d'autres termes, cela corrige le code, plutôt que d'utiliser un @suppresswarnings code> Annotation.
Licornes Euh, oui. Bien que le sentiment semble être que des avertissements ne comptent pas et font quelque chose de hasard à se débarrasser d'eux.
@Tom Hawtin - Tackline: Je l'ai reformulé maintenant. Cependant, il ne change pas qu'une liste de vide immuable b> qui est typée va être identique à celle non typée. À mon avis, les avertissements sur l'utilisation de collections non génériques sont inutiles de toute façon; Si quelqu'un veut utiliser une collection non générique, pourquoi le compilateur devrait-il signaler cela comme un avertissement?
Licornes: Les types bruts sont fournis pour la compatibilité en arrière. Pour les utiliser n'est pas un java idiomatique.
Cela n'a rien à voir avec des paramètres de type explicites dans les invocations de méthode. P>
statique {} code> blocs et les initialiseurs des membres statiques, dans la commande de code source.) P>
Ainsi, au lieu d'écrire P>
class A {
static int x;
static { // static initializer starts
x = 5;
}
}
EDIT: Comment est le type générique statique accompli? P>
http://www.docjar.com/html/ API / JAVA / UTIL / COLLECTIONS.JAVA.HTML P>
public class Collections { ... public static final List EMPTY_LIST = new EmptyList<Object>(); ... public static final <T> List<T> emptyList() { return (List<T>) EMPTY_LIST; } ... }
Je savais que c'était quelque chose de simple. Le préfixe de type de retour générique est tout ce qui permet à cela? J'ai appris quelque chose aujourd'hui ...
Si par "Préfixe de type de retour générique", vous voulez dire le premier "
Quelle est la question? code> n'est pas une méthode générique, mais le nom (magie généré par compilateur) de la méthode du constructeur spécial qui fait une initialisation de classe.
Désolé ... aurait dû être plus clair. Je pense que j'ai mal supposé que le bloc statique avait quelque chose à voir avec le type générique statique.