Java 接口与泛型?

Java 接口与泛型?,java,generics,interface,Java,Generics,Interface,我有一些工作代码,使用泛型已经开始让代码看起来比它应该的更混乱 我是否可能放弃泛型,而使用成员类型、构造函数类型、方法参数类型和方法返回类型的接口 泛型提供了什么,而上面使用的接口不会?我知道泛型在检索元素时会进行编译时检查(以停止错误的强制转换,就像在过去一样),但是编译器不会检测到我是否尝试插入了不是所需接口子类型的类型吗?泛型使集合更加类型安全 如果在您的工作代码中大量使用集合,我更愿意使用 泛型 此外,正如那句臭名昭著的谚语所说,“程序在接口中,而不是在实现中”接口比类型安全更灵活。 泛

我有一些工作代码,使用泛型已经开始让代码看起来比它应该的更混乱

我是否可能放弃泛型,而使用成员类型、构造函数类型、方法参数类型和方法返回类型的接口


泛型提供了什么,而上面使用的接口不会?我知道泛型在检索元素时会进行编译时检查(以停止错误的强制转换,就像在过去一样),但是编译器不会检测到我是否尝试插入了不是所需接口子类型的类型吗?

泛型使集合更加类型安全

如果在您的工作代码中大量使用集合,我更愿意使用 泛型

此外,正如那句臭名昭著的谚语所说,“程序在接口中,而不是在实现中”接口比类型安全更灵活。

泛型也用于类、方法、接口、变量、构造函数。等等

有关更多详细信息,请参阅以下链接:


泛型使集合更加类型安全

如果在您的工作代码中大量使用集合,我更愿意使用 泛型

此外,正如那句臭名昭著的谚语所说,“程序在接口中,而不是在实现中”接口比类型安全更灵活。

泛型也用于类、方法、接口、变量、构造函数。等等

有关更多详细信息,请参阅以下链接:


接口向所有人宣布类在任何时候都必须如何运行。另一方面,类型参数(泛型)让客户机决定类在特定实例中的行为

类型参数通过允许类仅使用一组方法和字段处理一系列对象类型而使类成为泛型,并提供编译时检查以确保每个特定实例仅使用指定的类型

如果您试图使用接口提供这种灵活性,那么您将不得不编写相同方法和类的多个版本,其中每个版本的功能基本相同,但显式类型不同。这将是无聊的(这会导致剪切和粘贴错误)和庞大的,没有添加任何东西


泛型语法看起来有点怪,但你很快就会习惯它,所以不要让尖括号最初的丑陋阻止你利用一个强大的特性。

接口向所有人宣布类在任何时候都必须如何运行。另一方面,类型参数(泛型)让客户机决定类在特定实例中的行为

类型参数通过允许类仅使用一组方法和字段处理一系列对象类型而使类成为泛型,并提供编译时检查以确保每个特定实例仅使用指定的类型

如果您试图使用接口提供这种灵活性,那么您将不得不编写相同方法和类的多个版本,其中每个版本的功能基本相同,但显式类型不同。这将是无聊的(这会导致剪切和粘贴错误)和庞大的,没有添加任何东西



泛型语法看起来有点怪,但你很快就会习惯,所以不要让尖括号最初的丑陋阻止你利用一个强大的功能。

你能发布一个代码示例,让我们了解你在做什么吗?你的问题听起来相当混乱。通常在完全不同的场景中使用泛型和接口。@Keppil-代码太大了。我真的不用很多收藏品。我打算对包含成员对象的复合对象使用泛型。泛型的唯一用途是在检索成员对象时?那么泛型将提供什么,而使用我的接口方法不会提供什么呢?您能否发布一个代码示例,让我们了解您正在做什么?您的问题听起来相当混乱。通常在完全不同的场景中使用泛型和接口。@Keppil-代码太大了。我真的不用很多收藏品。我打算对包含成员对象的复合对象使用泛型。泛型的唯一用途是在检索成员对象时?那么泛型将提供什么,而使用我的接口方法不会提供什么呢?集合过去是,现在仍然是泛型的主要用例。这并不意味着它们是将泛型添加到Java中的唯一原因,它还可以用于类、方法、接口、变量和构造函数。等等…@Ben请看这一段
泛型的需要将泛型添加到Java编程语言的动机源于缺乏关于集合的元素类型的信息,开发人员需要跟踪集合包含的元素类型,以及到处都需要强制转换那么,使用接口是否不能完全提供泛型可以做什么?我不需要用我的接口方法强制转换任何东西,我说如果你的代码中有很多集合,最好使用泛型。我更喜欢在需要对象扮演不同角色的地方使用接口。集合过去是,现在仍然是泛型的主要用例。这并不意味着它们是将泛型添加到Java中的唯一原因,它还可以用于类、方法、接口、变量和构造函数。等等…@Ben请看这一段
泛型的需要将泛型添加到Java编程语言的动机源于缺乏关于集合的元素类型的信息,开发人员需要跟踪集合包含的元素类型,以及到处都需要强制转换那么,使用接口是否不能完全提供泛型可以做什么?我没有必要