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

嘉兴企业网站建设公司网络营销推广主要做什么?

嘉兴企业网站建设公司,网络营销推广主要做什么?,在门户网站建设上的讲话,网络营销外包公司上班泛型 泛型作用泛型语法(1) 泛型类/接口(2) 泛型方法 类型参数命名习惯类型通配符&#xff08;Wildcards&#xff09;(1) 无界通配符 <?>表示“未知类型”(2) 上界通配符 <? extends T>表示“T 或 T 的子类”。(3) 下界通配符 <? super T>表示“T 或 T 的父…

泛型

  • 泛型作用
  • 泛型语法
    • (1) 泛型类/接口
    • (2) 泛型方法
  • 类型参数命名习惯
  • 类型通配符(Wildcards)
    • (1) 无界通配符 <?>表示“未知类型”
    • (2) 上界通配符 <? extends T>表示“T 或 T 的子类”。
    • (3) 下界通配符 <? super T>表示“T 或 T 的父类”。
  • 注意事项
    • 类型擦除(Type Erasure)
    • 基本类型不能用泛型
    • 静态成员不能使用类的泛型参数
    • 泛型数组的限制
  • 常见应用场景
    • 集合框架
    • 工具类
    • 回调接口
  • 总结

泛型作用

类型安全:在编译时检查类型,避免运行时类型转换错误。
代码复用:用同一套逻辑处理不同类型的数据,减少重复代码。
消除强制类型转换:编译器自动处理类型转换,代码更简洁。

泛型语法

(1) 泛型类/接口

// 定义一个泛型类
public class Box<T> {private T content;public void setContent(T content) {this.content = content;}public T getContent() {return content;}
}
// 使用示例
Box<String> stringBox = new Box<>();
stringBox.setContent("Hello");
String value = stringBox.getContent(); // 无需强制转换

(2) 泛型方法

// 定义一个泛型方法
public <T> void printArray(T[] array) {for (T element : array) {System.out.print(element + " ");}
}// 使用示例
Integer[] intArray = {1, 2, 3};
printArray(intArray); // 输出: 1 2 3String[] strArray = {"A", "B", "C"};
printArray(strArray); // 输出: A B C

类型参数命名习惯

T:Type(类型),通用的类型变量,可以代表任何类型

public interface Iterable<T> {}

E:Element(集合中的元素)

public interface Collection<E> extends Iterable<E> {}

K:Key(键)
V:Value(值)

public interface Map<K,V> {}

N:Number(数值类型)
自定义:如 < Student >也可,但推荐使用单字母大写。

类型通配符(Wildcards)

(1) 无界通配符 <?>表示“未知类型”

表示“未知类型”,常用于不需要关心具体类型的场景。

public void printList(List<?> list) {for (Object elem : list) {System.out.println(elem);}
}

(2) 上界通配符 <? extends T>表示“T 或 T 的子类”。

// 接收 Number 或其子类(如 Integer, Double)
public void processNumbers(List<? extends Number> list) {for (Number num : list) {System.out.println(num.doubleValue());}
}

(3) 下界通配符 <? super T>表示“T 或 T 的父类”。

// 向集合中添加 Integer 或其父类(如 Number, Object)
public void addIntegers(List<? super Integer> list) {list.add(10);list.add(20);
}

注意事项

类型擦除(Type Erasure)

编译时行为:泛型信息在编译后会被擦除,替换为 Object 或上界类型。
运行时限制:无法获取泛型的具体类型参数。

//其中泛型类型为String,代表元素类型是Sring
List<String> list = new ArrayList<>();
if (list instanceof ArrayList<String>) { // 编译错误!无法检查泛型类型// ...
}

基本类型不能用泛型

// 错误写法
List<int> list = new ArrayList<>(); 
// 正确写法
List<Integer> list = new ArrayList<>();

静态成员不能使用类的泛型参数

public class Box<T> {// 错误写法private static T staticField; 
}

静态static 是类加载作用,即.java-->.class对象,静态成员不属于任何特定类型的实例

在Java中,泛型只是一个占位符,必须在传递类型后才能使用。类实例化时才能传递真正的类型参数
由于静态方法的加载先于类的实例化,也就是说类中的泛型还没有传递真正的类型参数时,静态方法就已经加载完成。因此,静态方法不能使用/访问泛型类中的泛型

泛型数组的限制

// 错误写法:不能直接创建泛型数组
T[] array = new T[10]; 
// 正确写法(通过强制类型转换)
T[] array = (T[]) new Object[10];

常见应用场景

集合框架

List<String> names = new ArrayList<>();
Map<Integer, String> idToName = new HashMap<>();

工具类

public class Pair<K, V> {private K key;private V value;// getter/setter...
}

回调接口

public interface Callback<T> {void onSuccess(T result);void onError(String message);
}

总结

核心目标:通过类型参数化,提高代码的复用性和安全性。

关键语法
1.泛型类:class Box { … }
2.泛型方法: void method(T param) { … }
3.通配符:<?>、<? extends T>、<? super T>

避免陷阱:类型擦除、基本类型限制、静态上下文问题。

http://www.dtcms.com/wzjs/387368.html

相关文章:

  • 德阳seo优化宁波谷歌seo
  • 网站运营策略如何做怎么做自媒体
  • wed网站云南网站seo服务
  • wordpress lover北京网站优化效果
  • 做网站的公司百度如何收录网站
  • 网站制作要素成都官网seo费用
  • 做网站初始配置长沙seo优化推广
  • 襄阳网站建设多少钱aso苹果关键词优化
  • 没有营业执照可以做网站吗营销助手下载app下载
  • 如何建网站并做推广湖南网站seo地址
  • 做网站建设的网站百度seo教程网
  • 可视化域名网站模块被删了主流网站关键词排名
  • 做网站设计参考文献新品上市怎么推广词
  • wap网站建设小时seo加盟
  • 润滑油网站怎样做效果更好google开户
  • 网站架构图怎么做百度客户电话
  • 网站制做seo流量增加软件
  • 广东电子商务网站建设价格输入关键词自动生成标题
  • 安徽池州做网站的公司营销培训课程
  • 做网页和网站有什么区别吗信息发布平台推广有哪些
  • h5网站如何做排名百度用户服务中心电话
  • 网站套餐报价 模版可以免费投放广告的平台
  • 中国建设银行投标再什么网站上新东方托福班价目表
  • 微网站矩阵怎么做长春网站制作
  • 凡科网是什么重庆seo推广外包
  • 下载wordpress 4.8.1百seo排名优化
  • 怎样做b2b电商网站特点爱站seo工具
  • 屏显的企业网站应该怎么做如何制作网站最简单的方法
  • 如何做营销型网站360优化大师下载安装
  • wordpress 视频外链seo优化网站源码