Je viens d'un arrière-plan C#, comment les génériques ressemblent-ils à Java par rapport à C#? (l'utilisation de base)différence de syntaxe entre les génériques en java et C#
Répondre
C'est une question assez énorme, pour être honnête - les plus grandes différences ne sont pas dans la syntaxe, mais dans le comportement ... à quel point ils sont vraiment, vraiment différents. Je suggère que vous lisiez les Sun generics tutorial et Angelika Langer's Java Generics FAQ. Oubliez tout ce que vous savez sur les génériques de C# /. NET d'abord. En particulier, alors que les types génériques .NET conservent l'argument type lors de l'exécution, les génériques Java ne sont pas dus à type erasure.
En d'autres termes, en C# vous pouvez écrire:
public class GenericType<T>
{
public void DisplayType()
{
Console.WriteLine(typeof(T));
}
}
... vous ne pouvez pas le faire en Java :(
De plus, les génériques .NET peuvent avoir des arguments de type de type valeur , alors que Java génériques ne peut pas (vous devez utiliser List<Integer>
au lieu de List<int>
par exemple).
ce sont probablement les deux plus grands différences, mais il vaut bien essayer d'apprendre Java gener ics à partir de zéro au lieu de "diff" de C#.
Il existe un certain nombre d'articles à ce sujet, mais il y a one notable example qui traite de certaines des différences et des limitations des génériques en Java.
Voici un exemple simple tiré du tutoriel Collections existantes:
// Removes 4-letter words from c. Elements must be strings
static void expurgate(Collection c) {
for (Iterator i = c.iterator(); i.hasNext();)
if (((String) i.next()).length() == 4)
i.remove();
}
Voici le same example modifié pour utiliser les médicaments génériques:
// Removes the 4-letter words from c
static void expurgate(Collection<String> c) {
for (Iterator<String> i = c.iterator(); i.hasNext();)
if (i.next().length() == 4)
i.remove();
}
- 1. Différence entre les paramètres génériques Java
- 2. différence d'application mobile entre Java et C#
- 3. différence de syntaxe entre ruby et python?
- 4. java génériques et C++ templates
- 5. Différence entre long et int en C#?
- 6. Quelle est la différence entre? et Object dans les génériques Java?
- 7. Différence entre la répartition double et le modèle de visiteur en Java et en C++
- 8. différence entre AES iPhone (Objective-c) et Java
- 9. Différence entre Groovy def et Java Object?
- 10. Java Différence détaillée entre les dates
- 11. génériques VB.NET à C# syntaxe
- 12. Java: Différence entre PrintStream et PrintWriter
- 13. Java - Différence entre SwingWorker et SwingUtilities.invokeLater()
- 14. Différence entre l'importation dans Java et l'objectif C
- 15. C# vs Java - Listes génériques
- 16. Quelle est la différence entre les itérateurs en Java et C++?
- 17. Différence entre "==" et "===" dans le script java
- 18. VS DataBreakpoints: différence entre C et C++
- 19. Quelle est la différence entre 'int?' et 'int' en C#?
- 20. Quelle est la différence entre les caractères génériques bornés et les paramètres de type?
- 21. Différence entre Apache Struts et Java EE?
- 22. Différence entre mouseListener et mouseMotionListener dans Java?
- 23. génériques java et SuppressWarnings
- 24. différence entre les expressions lambda et les méthodes anonymes - C#
- 25. Quelle est la différence entre JFrame et FramView en Java?
- 26. Différence entre & ampersand et && ou | (pipe) et || en Objective-C?
- 27. différences entre StringBuilder en Java et C#
- 28. Différence entre init() et la méthode principale() en Java
- 29. C#, différence entre System.Window.Controls et System.Windows.Forms?
- 30. Différence entre l'image et l'image buffered en Java
Cela pourrait aider http://stackoverflow.com/questions/864773/resource-for-learning-java-génériques – Zaki