Existe-t-il un équivalent en Java 1.5 à Enumerable.Cast()
de C#? Je veux attribuer un ArrayList<MyType>
à une variable déclarée comme List<Object>
. Eclipse gronde "Type discordance: ne peut pas convertir de ArrayList<MyType>
à List<Object>
". J'utilisais juste List
et ArrayList
sans génériques mais le compilateur m'avertit à ce sujet, et je voulais nettoyer quelques avertissements.Java - Enumerable.Cast() comme C#?
3
A
Répondre
7
Il serait risqué de lancer si vous alliez ajouter à la liste. Toutefois, si vous voulez seulement chercher dans la liste, vous pouvez utiliser:
ArrayList<MyType> specificList = new ArrayList<MyType>();
List<? extends Object> generalList = specificList;
ou plus près de Enumerable.Cast
serait d'utiliser Iterable
:
Iterable<? extends Object> generalIterable = specificList;
Il est dommage que vous avez besoin même de préciser le caractère générique ici (j'ai été surpris que vous l'avez fait) étant donné que Iterable
est une interface "lecture seule".
Pour plus d'informations sur les génériques Java, voir le Java Generics FAQ.
Questions connexes
- 1. Enumerable.Cast <T> Copier des objets?
- 2. Pourquoi Enumerable.Cast <> n'utilise pas mon opérateur de conversion?
- 3. callbacks C++ comme dans java
- 4. C comme ENUM en Java
- 5. C# Initialiser classe abstraite comme Java
- 6. lire des caractères dans Java comme C++?
- 7. Chaînes de commande C++ comme Java?
- 8. Dessin avec C# comme Java possible?
- 9. travail avec interface comme Java en C#
- 10. Regex Capture en Java comme en C#
- 11. C++ Singleton classe getInstance (comme java)
- 12. Java: String.Format existe-t-il en Java comme en C#?
- 13. fonctionnalité -comme Java LINQ
- 14. typedef comme C/C++
- 15. C++ - Analyser comme C++?
- 16. C++ Bibliothèque de jeux/Moteur comme LWJGL en Java
- 17. Librairie libre comme la classe Robot de Java pour C++
- 18. continuer à <label> en C# comme dans Java
- 19. C++ NOUVEAU objet en tant que paramètre (comme Java)
- 20. Quelque chose comme les annotations Java dans Objective-C
- 21. passe Java fonction de script comme paramètre à fonction C++
- 22. Est-ce que C possède un garbage collector comme Java?
- 23. "Est-ce que l'opérateur C# est comme instanceof dans Java?
- 24. java données liaison à gui comme dans C#
- 25. Java onCreate avec paramètre comme dans initWithParameter C++
- 26. créer une matrice courte int dans c comme java short []
- 27. Est-ce que java a des attributs comme C#?
- 28. Comment faire une variable privée dans Object-C comme Java
- 29. Voir React code natif comme code Java ou Objective-C
- 30. C# modèle abstraction et génériques, comme générique inconnue jeté Java
Merci! J'ai ajusté certains types de retour et de paramètres pour avoir ' extends Object> 'au lieu de'
@SarahVessels: L'utilisation de caractères génériques pour les types de paramètres est correcte (et à quoi ils servent principalement), mais vous devez essayer d'éviter de les utiliser dans les types de retour lorsque cela est possible. – ColinD
@ColinD: Je pourrais mettre à jour mes classes que j'attends comme type de retour pour partager une interface, donc je peux avoir un type de retour de 'List'. –