Java源代码中泛型的提问?

发布于 2022-09-02 15:04:48 字数 634 浏览 11 评论 0

**在查看JDK源代码的时候,常会发现如下几种类型:?、T、Object、K、V、E,众所周知,?代表的是不确定的Java类型,T代表实际使用之前就已经确定的Java类型,Ojbect是所有类的基类,在强制转换的时候,可以被频繁使用,K和V表示的是key,value,E代表的是Element,Element是元素的意思,表示它是作为一个集合的元素。但是源码中有的时候用的是E,有的时候用的是V,它们在表示单一的类型的时候有什么区别呢?
比如:**
1.Callable接口,为什么用的是V

  public interface Callable<V> {
        V call() throws Exception;
    }

2.List接口中为什么使用E

public interface List<E> { 

           void add(E x); 

           Iterator<E> iterator(); 

}

得出的结论:V、E、T代表的是一种类型,并没有实质的区分。就好像在数学中,变量x y z都表示变量名,在同一环境下,区分开来是三个不同的变量。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

枫以 2022-09-09 15:04:48

用什么都是一样的,没有区别,T、K、V、E他们仅仅是一个名而已,取不同的名只是为了告诉我们这个类型数据所代表的含义。

九局 2022-09-09 15:04:48

?是个关键字,表示匹配任意类型,其他的T,K,V之类的都没有区别,自己选择喜欢的字母就可以了。

七七 2022-09-09 15:04:48

用什么都一样,如你真想知道你去问作者为什么要用这几个字母。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文