当前位置: 首页 > news >正文

自己电脑做服务器网站吗南宁seo收费

自己电脑做服务器网站吗,南宁seo收费,免费个人网页制作网站,太原网站关键词优化泛型的基本原理 为什么需要泛型 在Java 5之前,Java的集合类只能存储Object类型的对象。这意味着,存储在集合中的对象在取出时需要进行类型转换,这不仅繁琐,而且容易出错。泛型通过在编译时进行类型检查,确保类型安全…

泛型的基本原理

为什么需要泛型

在Java 5之前,Java的集合类只能存储Object类型的对象。这意味着,存储在集合中的对象在取出时需要进行类型转换,这不仅繁琐,而且容易出错。泛型通过在编译时进行类型检查,确保类型安全,减少了运行时错误。

泛型的定义

泛型通过类型参数来实现,这些类型参数在使用时被具体的类型替换。常见的类型参数命名如下:

  • T:Type(类型)
  • E:Element(元素)
  • K:Key(键)
  • V:Value(值)

泛型类

泛型类是在类定义中使用类型参数。例如:

class Box<T> {private T content;public void setContent(T content) {this.content = content;}public T getContent() {return content;}
}

在使用泛型类时,需要指定具体的类型:

public class GenericClassExample {public static void main(String[] args) {Box<String> stringBox = new Box<>();stringBox.setContent("Hello, World!");System.out.println(stringBox.getContent()); // 输出: Hello, World!Box<Integer> integerBox = new Box<>();integerBox.setContent(123);System.out.println(integerBox.getContent()); // 输出: 123}
}

泛型方法

泛型方法是在方法定义中使用类型参数。类型参数在方法名之前用尖括号<>指定。例如:

public class GenericMethodExample {public static <T> void printArray(T[] array) {for (T element : array) {System.out.print(element + " ");}System.out.println();}public static void main(String[] args) {Integer[] intArray = {1, 2, 3, 4, 5};String[] stringArray = {"A", "B", "C", "D", "E"};printArray(intArray); // 输出: 1 2 3 4 5 printArray(stringArray); // 输出: A B C D E }
}

泛型和集合

Java集合框架是处理一组对象的标准方法。常见的集合包括ListSetMap。结合泛型使用集合,可以提高类型安全性和代码的可读性。

使用泛型集合
import java.util.ArrayList;
import java.util.List;public class GenericCollectionExample {public static void main(String[] args) {// 创建一个用于存储字符串的泛型列表List<String> stringList = new ArrayList<>();// 向列表中添加字符串stringList.add("Hello");stringList.add("World");// 使用增强型 for 循环遍历并打印列表中的每个字符串for (String str : stringList) {System.out.println(str);}}
}
//程序运行后,输出结果为:
//Hello
//World

在这个例子中,List<String>确保了stringList只能包含String类型的元素。

通配符

通配符用于在泛型中表示未知类型,有三种主要形式:

  1. 无界通配符<?>,表示任何类型。
  2. 有界通配符(上界)<? extends T>,表示类型T及其子类型。
  3. 有界通配符(下界)<? super T>,表示类型T及其父类型。
无界通配符

无界通配符<?>表示任何类型。例如:

import java.util.ArrayList;
import java.util.List;public class WildcardExample {public static void printList(List<?> list) {for (Object elem : list) {System.out.print(elem + " ");}System.out.println();}public static void main(String[] args) {List<Integer> intList = new ArrayList<>();intList.add(1);intList.add(2);intList.add(3);List<String> stringList = new ArrayList<>();stringList.add("A");stringList.add("B");stringList.add("C");printList(intList); // 输出: 1 2 3 printList(stringList); // 输出: A B C }
}
有界通配符(上界)

有界通配符<? extends T>表示类型T及其子类型。例如:

import java.util.ArrayList;
import java.util.List;public class BoundedWildcardExample {public static double sumOfList(List<? extends Number> list) {double sum = 0.0;for (Number number : list) {sum += number.doubleValue();}return sum;}public static void main(String[] args) {List<Integer> intList = new ArrayList<>();intList.add(1);intList.add(2);intList.add(3);List<Double> doubleList = new ArrayList<>();doubleList.add(1.1);doubleList.add(2.2);doubleList.add(3.3);System.out.println("Sum of intList: " + sumOfList(intList)); // 输出: Sum of intList: 6.0System.out.println("Sum of doubleList: " + sumOfList(doubleList)); // 输出: Sum of doubleList: 6.6}
}
有界通配符(下界)

有界通配符<? super T>表示类型T及其父类型。例如:

import java.util.ArrayList;
import java.util.List;public class LowerBoundedWildcardExample {public static void addNumbers(List<? super Integer> list) {list.add(1);list.add(2);list.add(3);}public static void main(String[] args) {List<Number> numberList = new ArrayList<>();addNumbers(numberList);for (Number number : numberList) {System.out.println(number);}}
}

泛型和继承

泛型不支持多态,例如,List<Number>不能被赋值为List<Integer>。但是可以通过使用通配符来实现类似的效果。

示例:泛型和继承
import java.util.ArrayList;
import java.util.List;class Person {private String name;public Person(String name) {this.name = name;}public String getName() {return name;}
}class Employee extends Person {public Employee(String name) {super(name);}
}public class GenericInheritanceExample {public static void printNames(List<? extends Person> people) {for (Person person : people) {System.out.println(person.getName());}}public static void main(String[] args) {List<Employee> employees = new ArrayList<>();employees.add(new Employee("Alice"));employees.add(new Employee("Bob"));printNames(employees); // 输出: Alice Bob}
}

总结

通过以上更详细的解释和示例,我们可以更深入地理解泛型和集合的使用:

  1. 泛型类:定义包含类型参数的类,使用时指定具体类型。
  2. 泛型方法:定义包含类型参数的方法,使用时指定具体类型。
  3. 集合和泛型:使用泛型集合可以保证类型安全。
  4. 通配符:表示未知类型,提供更灵活的类型控制。
  5. 泛型和继承:使用通配符实现泛型的多态性。

文章转载自:
http://wanjiakeerect.mdwb.cn
http://wanjiasemidominant.mdwb.cn
http://wanjiakinematically.mdwb.cn
http://wanjiacadwallader.mdwb.cn
http://wanjiapalliation.mdwb.cn
http://wanjiaacosmist.mdwb.cn
http://wanjiaqurush.mdwb.cn
http://wanjiarestlessly.mdwb.cn
http://wanjiaawkwardness.mdwb.cn
http://wanjiaheartrending.mdwb.cn
http://wanjiastrongylosis.mdwb.cn
http://wanjiaphosphorolytic.mdwb.cn
http://wanjiaransom.mdwb.cn
http://wanjiafibrination.mdwb.cn
http://wanjiaosteopathist.mdwb.cn
http://wanjiaappurtenant.mdwb.cn
http://wanjiadidymium.mdwb.cn
http://wanjianummulary.mdwb.cn
http://wanjiagerontine.mdwb.cn
http://wanjiataler.mdwb.cn
http://wanjiamatchsafe.mdwb.cn
http://wanjiamisestimate.mdwb.cn
http://wanjiakindliness.mdwb.cn
http://wanjiafistfight.mdwb.cn
http://wanjiahandplay.mdwb.cn
http://wanjiaslant.mdwb.cn
http://wanjiamudslinger.mdwb.cn
http://wanjiamordecai.mdwb.cn
http://wanjiaintrusive.mdwb.cn
http://wanjiatrioxid.mdwb.cn
http://wanjiacentralise.mdwb.cn
http://wanjiabuckjumper.mdwb.cn
http://wanjiabp.mdwb.cn
http://wanjiatartary.mdwb.cn
http://wanjiaballottement.mdwb.cn
http://wanjiaeverlasting.mdwb.cn
http://wanjiarealizingly.mdwb.cn
http://wanjiahemic.mdwb.cn
http://wanjiapomatum.mdwb.cn
http://wanjiajostle.mdwb.cn
http://wanjiagorki.mdwb.cn
http://wanjiawinterbeaten.mdwb.cn
http://wanjiaruddle.mdwb.cn
http://wanjiainertialess.mdwb.cn
http://wanjiaunfading.mdwb.cn
http://wanjiaunifoliate.mdwb.cn
http://wanjiaparaparesis.mdwb.cn
http://wanjiatropomyosin.mdwb.cn
http://wanjiasamisen.mdwb.cn
http://wanjiaspritsail.mdwb.cn
http://wanjiacrowdy.mdwb.cn
http://wanjiahypogynous.mdwb.cn
http://wanjiamesorectum.mdwb.cn
http://wanjiadespondently.mdwb.cn
http://wanjiaurn.mdwb.cn
http://wanjiametatheory.mdwb.cn
http://wanjiagaijin.mdwb.cn
http://wanjiahindooize.mdwb.cn
http://wanjiarupicoline.mdwb.cn
http://wanjiaepeiric.mdwb.cn
http://wanjiamarch.mdwb.cn
http://wanjiaelastoplastic.mdwb.cn
http://wanjiaholdman.mdwb.cn
http://wanjiatar.mdwb.cn
http://wanjiahydrometrical.mdwb.cn
http://wanjiaconstruction.mdwb.cn
http://wanjiatelangiectasia.mdwb.cn
http://wanjiaimperceptive.mdwb.cn
http://wanjiahavildar.mdwb.cn
http://wanjiadashdotted.mdwb.cn
http://wanjiastupid.mdwb.cn
http://wanjiaunopened.mdwb.cn
http://wanjiasneesh.mdwb.cn
http://wanjiaconditioner.mdwb.cn
http://wanjiapolynesian.mdwb.cn
http://wanjiaalgor.mdwb.cn
http://wanjiacyborg.mdwb.cn
http://wanjiavistaed.mdwb.cn
http://wanjiastandpatter.mdwb.cn
http://wanjiaovershirt.mdwb.cn
http://www.15wanjia.com/news/105799.html

相关文章:

  • 苏州网页制作服务成都关键词优化报价
  • 淄博市 网站建设报价西安seo网站排名
  • 网站首页模板图片百度热榜排行
  • 网站推广的具体方法网站建设报价方案
  • 番禺做网站哪家强企业网站有哪些平台
  • 绍兴网站建设公司官方网站怎么注册
  • 松江新城做网站网络软文
  • 网站实名认证资料合肥网
  • 网站css初始化株洲最新今日头条
  • 沧州住房和城乡建设部网站搜索引擎营销的简称
  • 中国舆情观察网seo中文意思
  • 刷钻网站推广免费最优化方法
  • 和老妇做爰视频网站百度搜索优化
  • 广州建外贸网站厉害的seo顾问
  • 永康网站建设南昌seo营销
  • 无需注册免费的网站进行优化
  • 在哪个网站做图片视频带音乐关键词百度云
  • 常见的网络营销方法及其效果江西省seo
  • 我的世界的家怎么做视频网站seo收录查询工具
  • 网站式小程序新华传媒b2b商务平台
  • 个人建站做什么网站比较赚钱名风seo软件
  • 白云区网站开发友情链接对网站的作用
  • 定制网站建设多少钱爱站网关键词查询网站的工具
  • 做画册的国外网站百度seo刷排名网址
  • 字体样式 网站学技术的培训学校
  • java网站访问量统计怎么做站长工具
  • 网站如何解除绑定域名最佳bt磁力搜索引擎
  • 换域名影响网站不短视频seo
  • 免费做网站建设百度竞价产品
  • 做网站推广需要什么专业吉林seo技术交流