java泛型
来源:互联网 发布:杨千嬅 唱功 知乎 编辑:程序博客网 时间:2024/06/13 11:01
1. Java中的泛型是什么 ? 使用泛型的好处是什么?
在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入 集合中,避免了在运行时出现ClassCastException。
2.什么是泛型
泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写 体验泛型 代码时定义一些可变部份,那些部份在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念。
3.什么是泛型中的限定通配符和非限定通配符 ?
这是另一个非常流行的Java泛型面试题。限定通配符对类型进行了限制。有两种限定通配符,一种是<? extends T>它通过确保类型必须是T的子类来设定类型的上界,另一种是<? super T>它通过确保类型必须是T的父类来设定类型的下界。泛型类型必须用限定内的类型来进行初始化,否则会导致编译错误。另一方面<?>表 示了非限定通配符,因为<?>可以用任意类型来替代。
4.泛型案例
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class DAO<T> {
Map<String,T> map;
//增,保存
public void save(String id,T entity){
map.put(id, entity);
}
//查,获取,
public T get(String id){
return map.get(id);
}
//改 替换map中key为id的内容,改为entity对象
public void update(String id,T entity){
// map.remove(id);
map.put(id, entity);
}
//查,返回map中存放的所有T对象
public List<T> list(){
List<T> list=new ArrayList();
for (String s : map.keySet()) {
list.add(map.get(s));
}
return list;
}
//删除指定id的对象
public void delete(String id){
map.remove(id);
}
}
import java.util.List;
import java.util.Map;
public class DAO<T> {
Map<String,T> map;
//增,保存
public void save(String id,T entity){
map.put(id, entity);
}
//查,获取,
public T get(String id){
return map.get(id);
}
//改 替换map中key为id的内容,改为entity对象
public void update(String id,T entity){
// map.remove(id);
map.put(id, entity);
}
//查,返回map中存放的所有T对象
public List<T> list(){
List<T> list=new ArrayList();
for (String s : map.keySet()) {
list.add(map.get(s));
}
return list;
}
//删除指定id的对象
public void delete(String id){
map.remove(id);
}
}
阅读全文
0 0
- 【java 2】java泛型
- Java 泛型 Java generic
- Java Tutorials_Generics(java泛型)
- Java基础 Java 泛型
- java 泛型
- java泛型
- Java泛型
- Java泛型
- java泛型
- java泛型
- java泛型
- Java 泛型
- Java泛型
- Java 泛型
- JAVA 泛型
- java 泛型
- java泛型
- Java泛型
- pandas的部分用法
- Cannot resolve module 'fs'
- tensorflow--tf.one_hot()函数示例
- poj 3061 Subsequence (尺取法)
- 【vue 组件 mint-ui】 看了一下源码,给轮播图Swiper封装自定义跳转的函数
- java泛型
- break和continue的区别和作用?
- C++中重载、重写、重定义
- java 多线程随记
- SwipyRefreshLayout+recyclerview
- TCP和UDP的最完整的区别
- repo的介绍
- 上传图片
- B-Tree / B+Tree 结构以及MySQL索引