java - 泛型类型是什么意思?

标签 java generics

我一直在阅读我的《Java for Dummies》有关抽象类的书,书中写道: “当您想要创建一个用作两个或多个子类的父类(super class)的通用类型,但父类(super class)本身并不代表实际对象时,抽象类非常有用。” 您不需要继续解释抽象类,只需解释“通用类型”的含义,因为我对其含义感到困惑。我对java中的泛型一无所知,至少我不认为我知道...... 请用简单的术语解释一下,谢谢:D

最佳答案

在 Java 中,“泛型”是类型的参数。这可能听起来令人困惑,但这里有一个简单的解释。如果您正在创建一个许多其他类将从中继承的类,那么您希望使其广泛且灵活。因此,您可以使用“通用”类型来创建实例变量。

泛型类型可以实现为:(注意菱形括号“<>”)

public abstract class TestClass<T>

关于抽象类: 在 Java 中,如果扩展一个类,则必须实现所有方法,除非您声明该类抽象。如果声明类abstract,则可以通过将关键字abstract放在其定义前面并在声明后面加上分号来声明方法。当您扩展该类时,您必须使用相同的返回类型和相同的参数来实现该方法。

对象和抽象类: 您无法创建抽象类的实例,因为并非所有方法都已开发。创建实例时,方法将被调用,程序将开始运行,但是如果您尝试创建抽象类的实例,它将调用没有代码的方法,Java 会感到困惑,并且程序将失败。

使用泛型创建实例这可能比您的问题更深入一些,但我想我会提到如何创建泛型类的实例。

请注意,菱形大括号中的参数必须是一个对象。对于原始类型,您可以只使用 Int、Double、Float(首字母大写),Java 会将对象“自动装箱”为原始类型。

ClassName<String> obj = new ClassName<>();

关于java - 泛型类型是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22437870/

相关文章:

Java 循环泛型

c# - 通用字典中的 TKey 和 TValue 是什么?

c# - 来自 Eric Lippert 采访的谜题 : Inheritance and Generic Type Setting

c# - 具有通用服务的服务结构

java - NoClassDefFoundError:无法初始化类 com.jidesoft.swing.JideSwingUtilities

java - 如何在 vs 代码中调试 Java maven spring-boot 应用程序?

java - Java编程时如何处理异常?

java - Oracle 和 HIbernate,数据库序列生成器问题

java - java中treeset/CopyOnWriteArrayList的默认大小?

Java:从泛型类填充动态列表