我来自c#背景,java中的泛型如何与c#相比? (基本用法)java和c#泛型之间的语法区别#
1
A
回答
5
这是一个相当大的问题,说实话 - 最大的区别不在于语法,而在于行为......在这一点上,他们真的非常不同。
我建议你阅读Sun generics tutorial和Angelika Langer's Java Generics FAQ。尽管从C#/ .NET首先尽可能地忘掉你对泛型的所有知识。特别是,虽然.NET泛型类型在执行时保留了类型参数,但Java泛型并不是由于类型擦除。
因此,换句话说,在C#中,你可以写:
public class GenericType<T>
{
public void DisplayType()
{
Console.WriteLine(typeof(T));
}
}
...你不能在Java中:(
此外为此,.NET泛型可以有值类型变量类型,而Java泛型不能(所以你必须使用List<Integer>
而不是List<int>
为例)。
这些可能是两个最大的差异,但它是值得努力学习Java根儿从头开始,而不是从C#中的“差异”。
1
有很多关于这方面的文章,但有one notable example讨论了泛型在Java中的一些差异和局限性。
这里是从现有的集合教程采取了一个简单的例子:
// 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();
}
下面是修改为使用泛型same example:
// 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. Java和C#和.NET之间的区别
- 2. C++:指针语法之间的区别
- 3. ASP和C#之间的语义区别?
- 4. C#:方法类型之间的区别
- 5. ruby和python之间的语法区别?
- 6. objective-c和java之间的区别
- 7. 泛型类中这些语句之间的区别是什么?
- 8. 了解方法,泛型类型之间区别的问题
- 9. Symbian C++和规范C++之间的语法区别是什么?
- 10. Java泛型语法
- 11. 这两种语法之间的区别
- 12. C#“var”和C++“auto”之间的区别
- 13. 'wait'和'@'语句之间的区别
- 14. 语句和函数之间的区别
- 15. 普通语言和普通语法之间的区别
- 16. Haskell和Haskell类语言之间的类型声明语法区别
- 17. java类和jar之间的区别
- 18. Java Point,getX()和point.x之间的区别
- 19. Java - javax.crypto.Mac和javax.crypto.Cipher之间的区别?
- 20. scala和java枚举之间的区别
- 21. Authenticode,SPC和Java CodeSign之间的区别?
- 22. '。'之间的区别和“。” in java
- 23. MongoDB Java API:com.mongodb.DBCollection.Save()和com.mongodb.DBCollection.Insert()之间的区别?
- 24. Apache Struts和Java EE之间的区别?
- 25. Java中= +和+ =之间的区别?
- 26. Short.parseShort和Short.value之间的Java区别
- 27. MVVM - 模型和ViewModel之间的区别
- 28. C中的/ +和+之间的区别?
- 29. 和之间的区别。在Objective-C
- 30. ASP.Net,C#.Net和VB.Net之间的区别?
这可能有助于http://stackoverflow.com/questions/864773 /资源换取学习Java的泛型 – Zaki 2010-01-06 17:10:14