关于在通话中指定类型的java功能是什么?

时间:2018-09-29 21:27:14

标签: java types casting

由于我真的不知道如何形容,所以很难,但我会尽力的。

在上下文中,我正在使用2个类

  • 客户扩展人员

我收到了一个Customer数组,我想将其放入Vector<Person>中。当我编写此代码时,AndroidStudio会像这样自动完成它:

Vector<Person> persons = Arrays.<Person>asList(customers)

我的问题是:<Person>Arrays.asList之间是做什么的,因为删除它不会改变任何东西,因为Java已经将类型从Customer推断为Person

在我看来,它表明asList返回的列表的类型,但我仍然不太了解它的用处。

有人可以解释它是什么,它叫什么,它是真正的目的吗?

1 个答案:

答案 0 :(得分:1)

它适用于类型引用。 如果您像下面这样打电话。

Arrays.<Person>asList(customers)

编译器将T替换为Person类

// definition
static <T> List<T> asList(T... a)  
// changed
static <Person> List<Person> asList(Person... a)