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

专注营销型网站建设公司 做网站汉中seo培训

专注营销型网站建设公司 做网站,汉中seo培训,东莞专业微网站建设推广,极客wordpress主题1. 泛型类 泛型类是指在类定义时使用类型参数来指定类的类型。这样可以在类的内部使用这些类型参数来定义字段、方法的返回类型和参数类型。 public class Box<T> {private T t;public void set(T t) {this.t t;}public T get() {return t;} }在这个例子中&#xff0c…

1. 泛型类

泛型类是指在类定义时使用类型参数来指定类的类型。这样可以在类的内部使用这些类型参数来定义字段、方法的返回类型和参数类型。

public class Box<T> {private T t;public void set(T t) {this.t = t;}public T get() {return t;}
}

在这个例子中,Box 类使用了一个类型参数 T,可以在创建 Box 对象时指定具体的类型。

Box<Integer> integerBox = new Box<>();
integerBox.set(10);
Integer value = integerBox.get();Box<String> stringBox = new Box<>();
stringBox.set("Hello");
String message = stringBox.get();

2. 泛型接口

泛型接口与泛型类类似,允许在接口定义时使用类型参数。

public interface Cache<K, V> {V get(K key);void put(K key, V value);
}public class MemoryCache<K, V> implements Cache<K, V> {private Map<K, V> map = new HashMap<>();@Overridepublic V get(K key) {return map.get(key);}@Overridepublic void put(K key, V value) {map.put(key, value);}
}

在这个例子中,Cache 接口使用了两个类型参数 K 和 V,分别表示键和值的类型。MemoryCache 类实现了 Cache 接口,并使用了这些类型参数。

Cache<String, Integer> cache = new MemoryCache<>();
cache.put("one", 1);
Integer number = cache.get("one");

3. 泛型方法

泛型方法是指在方法定义时使用类型参数。这样可以在方法内部使用这些类型参数来定义方法的返回类型和参数类型。

public class Util {public static <T> T getFirst(T[] array) {if (array == null || array.length == 0) {return null;}return array[0];}
}

在这个例子中,getFirst 方法使用了一个类型参数 T,可以在调用方法时指定具体的类型。

Integer[] intArray = {1, 2, 3};
Integer firstInt = Util.getFirst(intArray);String[] stringArray = {"Hello", "World"};
String firstString = Util.getFirst(stringArray);

4. 类型通配符

类型通配符 ? 用于表示未知类型,可以用于方法参数和返回类型,以提高代码的灵活性。

无界通配符:? 表示任意类型。
public void printList(List<?> list) {for (Object elem : list) {System.out.print(elem + " ");}System.out.println();
}

}

有界通配符:

上界通配符:? extends T 表示类型参数是 T 的子类型。
public static double sumOfList(List<? extends Number> list) {double s = 0.0;for (Number n : list) {s += n.doubleValue();}return s;
}

下界通配符:? super T 表示类型参数是 T 的父类型。

public static void addNumbers(List<? super Integer> list) {for (int i = 1; i <= 10; i++) {list.add(i);}
}

5. 泛型的类型擦除

Java 泛型在编译时会被擦除,即编译后的字节码中不包含泛型信息。这意味着在运行时,泛型类型参数会被替换为它们的上界(如果有上界)或 Object(如果没有上界)。

public class Box<T> {private T t;public void set(T t) {this.t = t;}public T get() {return t;}
}

编译后,Box 类的字节码中 T 会被替换为 Object:

public class Box {private Object t;public void set(Object t) {this.t = t;}public Object get() {return t;}
}

6. 泛型的限制

不能使用基本数据类型:泛型只能使用对象类型,不能使用基本数据类型。例如,不能创建 Box,但可以创建 Box。
类型参数不能是 final 类型:不能使用 final 类型作为类型参数。
静态上下文中不能使用类型参数:不能在静态方法或静态初始化块中使用类的类型参数。
类型参数不能是异常类型:不能使用异常类型作为类型参数。

http://www.khdw.cn/news/32432.html

相关文章:

  • 苏州网站 建设 公司软文关键词排名推广
  • 网站开发的背景东莞seo推广
  • 微信公众号怎么创建步骤优化营商环境存在问题及整改措施
  • 洛阳做网站的公司关键词数据分析
  • 深圳网站建设选云聚达郑州seo优化顾问阿亮
  • 做网站的风险百度代理服务器
  • dz可以做门户网站吗百度在线识图查图片
  • 福州做网站设计外包网址大全浏览器下载
  • 昆山网站开发ikelv网站建站教程
  • 手机网站建站价格淘宝站内推广方式有哪些
  • 洛阳做家教去什么网站微信seo排名优化软件
  • 网站开发 视频存在哪网站的seo 如何优化
  • aspnet动态网页设计搜狗seo查询
  • 找南昌网站开发公司电话国外b站浏览器
  • 软慧网站建设宣传推广的十种方式
  • hyperapp wordpress佛山优化推广
  • 做3d效果的网站网络营销的50种方法
  • 上海网站开发公司2023年6月疫情情况
  • 信誉好的大良网站建设百度入口官网
  • 两岸统一最新消息网站推广优化排名
  • 中国煤炭建设协会网站qcseo优化快速排名
  • 慈利县建设局网站广州推动优化防控措施落地
  • 网站开发用什么字体营销推广平台
  • 怎样做卡盟网站aso优化师主要是干嘛的
  • wordpress 建企业网站电商卖货平台有哪些
  • 设计专业知名企业网站semen
  • 那个网站专门做幽默视频的seo优化前景
  • 华人汇和科技园建设有限公司网站百度怎么做自己的网页
  • 怎么做提高网站排名国内最近发生的重大新闻
  • 网站前置审批办理流程百度云服务器官网