java - 具有相同名称的通用和非通用

标签 java generics

java api 定义了几个具有相同名称的泛型和非泛型 - 如 LinkedList 等。它们都使用相同的语句 import java.util.LinkedList;。但是在一个包中,.java 文件中可能只有一个公共(public)类(具有相同的名称)。

那我们能不能达到同样的效果呢?我尝试了以下代码:

package org.****.ai.ass1.part1;
import java.util.LinkedList;

public abstract class Test extends LinkedList { }
//public abstract class Test<E> extends LinkedList<E> { }

没有注释,我得到以下错误:类型 Test 已定义。但是,如果我评论另一行,这两行都会编译。那么java api是怎么做到的呢?

最佳答案

由于 Java 实现泛型的方式(Google 的类型删除),LinkedList<T>LinkedList代表完全相同的类型。无法使用相同的完全限定名称声明两种不同的类型,一种是通用的,另一种不是。

关于java - 具有相同名称的通用和非通用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721713/

相关文章:

java - 找出给定数字的所有数字

java - 流式集合可以用 Java 实现吗?

c# - 将通用对象转换为类型化对象

c# - 参数化返回类型是否需要泛型方法签名?

generics - 是否可以从参数函数推导出函数返回类型?

java - Java方法中的字符串常量与变量

java - 任务管理器中的多个应用程序

Linux 上的 Java Runtime.exec() 参数

java - 如何用更具体的类型替换参数化类型

java - 相同类型的类型不匹配