>  Q&A  >  본문

spring - Java源代码中泛型的提问?

**在查看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都表示变量名,在同一环境下,区分开来是三个不同的变量。

PHP中文网PHP中文网2741일 전272

모든 응답(3)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-17 17:53:41

    모든 것이 동일하며 차이가 없습니다. T, K, V, E는 동일한 이름일 뿐이며 이러한 유형의 데이터의 의미를 알려줍니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:53:41

    ?는 키워드이므로 T, K, V 등 다른 문자와 차이가 없습니다. 원하는 문자를 선택하시면 됩니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 17:53:41

    무엇을 사용하든 상관없습니다. 정말로 알고 싶다면 저자에게 왜 이 글자를 사용하는지 물어보세요.

    회신하다
    0
  • 취소회신하다