gpt4 book ai didi

java - 有什么用?在 java

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:59 24 4
gpt4 key购买 nike

<分区>

我想知道 ?在 Java 泛型中。通过研究占位符 T 和通配符 ? , 我想知道 ?, 浏览了几个网站/页面和书籍但未能理解。所以我创建了下面的类(class)来研究差异。

import java.util.List;

public class Generics2 {

public <T> void method1(List<T> list){
System.out.println(list);
}

public <T extends Number> void method2(List<T> list){
System.out.println(list);
}

/*public <T super Integer> void method3(List<T> list){

}*///super does not work.

public void method4(List<?> list){
System.out.println(list);
}

public void method5(List<? extends Number> list){
System.out.println(list);
}

public void method6(List<? super Integer> list){
System.out.println(list);
}

public <T> void copy1(List<T> list1, List<T> list2){
//copy elements from list1 to list2

}//It does not span well with copy of one type of elements from list1 to other type elements in list2, where the list elements
//between the two are not same but are related through inheritance.

public <T1,T2> void copy2(List<T1> list1,List<T2> list2){
//copy elements from list1 to list2, right now we do not bother about the exceptions or errors that might generate.
}//Our intention here is not to copy elements with relation between T1 and T2. We intend to explore the differences on T and ?

public void copy3(List<?> list1,List<?> list2){
//copy elements from list1 to list2, right now we do not bother about the exceptions or errors that might generate.
}//Our intention here is not to copy elements with relation between T1 and T2. We intend to explore the differences on T

public <T1 extends Object, T2 extends Object> void copy4(List<T1> list1, List<T2> list2){
//copy elements from list1 to list2
}

public static void main(String[] args) {
// TODO Auto-generated method stub

}

}

在一种情况下,我的类(class)中可能缺少几个场景,所以我写的内容不完整,在这种情况下,任何人都可以帮助我实现更多场景。还是我发现了?作为多余的,除了它提供的功能,例如,在方法签名中使用 super 关键字和较小的字符以及返回类型。

编辑:基本上我的问题是知道背后的原因,介绍的目的?通用类型可以在任何地方替换它的通配符。不是怎么用的问题?或 T 类型。当然,了解它的用法会提供一些答案。例如,我推导出的东西:

  • >?使代码更具可读性,并且在某些情况下更不容易编码地点
  • 它有时会减少代码膨胀。
  • 我们可以使用父类(super class),这对于 T 类型是不可能的。
  • 限制向列表中添加新的随机元素。其中转换(没有 classcastexception)有时对 T 类型有效。

还有吗?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com