gpt4 book ai didi

java - 泛型与遗留代码 : 相比有何优势

转载 作者:行者123 更新时间:2023-11-29 09:48:41 25 4
gpt4 key购买 nike

我在 docs.oracle 网站上读到以下没有泛型的代码片段需要转换:

List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);

但是如果我用泛型编写代码,那么它仍然容易出错:

List<Object>= new List<Object>;
list.add("hello");
String s=(String)list.get(0);

那么泛型的真正用途是什么....:( thnx advance..

最佳答案

List<Object>= new List<Object>;
list.add("hello");
String s=(String)list.get(0);

应该是

List<String>= new ArrayList<String>();    // this is now a list of String, not a list of object
^^^^^^ ^^^^^^
list.add("hello");
String s=list.get(0); // no casting needed
^

您可以根据需要的类型进行参数化。您的示例是做同一件事的两种方法,因为您是通过最基本的类进行参数化的。

泛型的优点是你可以写一个类更具体的类,这里是String。这为您提供了更好的类型安全性,可以在编译期间尽早发现错误。这可以防止类型转换方法引起的问题。

关于java - 泛型与遗留代码 : 相比有何优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17398549/

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