c# - java和c#中泛型的语法差异

标签 c# java generics

我有 C# 背景,泛型在 Java 中与 C# 相比如何? (基本用法)

最佳答案

老实说,这是一个非常大的问题 - 最大的区别不在于语法,而在于行为......在这一点上,它们真的非常不同。

我建议您通读 Sun generics tutorialAngelika 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# 的“差异”。

关于c# - java和c#中泛型的语法差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2014694/

相关文章:

c# - 使用 MSBuild 进行 .Net Core 项目的 ILRepack

c# - 缩短整数数组

java - (javafx)我目前正在制作一个需要人们创建帐户的应用程序,我如何确保文本字段不为空?

java - Maven离线: Plugin not found error

Java 泛型 - 覆盖返回 set<T> 的函数

java - 如何使用 Java 中的流将没有泛型的列表转换为带有泛型的列表?

c# - Entity Framework - 循环然后调用 SaveChanges

c# - 如何从 Services.msc 中删除禁用的服务

java - Scala 中的多维数组

c# - 带有可选参数的构造函数违反了 new() 约束