java 泛型使用
2024-10-21 16:28:30
泛型类
// 简单泛型
class Point<T>{ // 此处可以随便写标识符号,T是type的简称
private T var ;
public T getVar(){
return var ;
}
public void setVar(T var){
this.var = var ;
}
}
// 多元泛型
class Notepad<K,V>{
private K key ;
private V value ;
public K getKey(){
return this.key ;
}
public V getValue(){
return this.value ;
}
public void setKey(K key){
this.key = key ;
}
public void setValue(V value){
this.value = value ;
}
}
public class GenericsDemo09{
public static void main(String args[]){
Notepad<String,Integer> t = new Notepad<String,Integer>() ;
t.setKey("汤姆") ;
t.setValue(20) ;
System.out.print("姓名;" + t.getKey()) ;
System.out.print(",年龄;" + t.getValue()) ;
}
}
泛型接口
// 泛型接口,带一个抽象方法
interface Info<T>{
public T getVar() ;
}
// 泛型接口实现类
class InfoImpl<T> implements Info<T>{
private T var ;
public InfoImpl(T var){
this.setVar(var) ;
}
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
}
public class GenericsDemo24{
public static void main(String arsg[]){
Info<String> i = new InfoImpl<String>("汤姆") ;
System.out.println("内容:" + i.getVar()) ;
}
}
泛型方法
// 参数类型是 Number 子类
private static <T extends Number> double add(T a, T b) {
return a.doubleValue() + b.doubleValue();
}
// 带泛型的字节码对象作为参数
private static <T> T test(String s, Class<T> t) {
return JSONObject.parseObject(string, t);
}
public static void main(String[] args) {
add(1, 2);
User user = test("{\"name\":\"Marry\",\"age\":18}", User.class);
}
泛型上下限
// 指定上限:只能是 Number 或其子类
static class Info<T extends Number>{
}
// 指定下限(只能用在方法上):必须是 Integer 或其父类
public static void test(Info<? super Integer> info){
}
最新文章
- 调试台自动多出现一个&#39;&;#65279;&#39; ,我 用uploadify上传图片时,在给页面写入一个返回值为图片名称的变量的值的时候值的前面始终多出现一个&#39;&;#65279;&#39;
- ps 实例部分
- BatsingJSLib 2.3、Ajax上传多个文件
- 2.Android 自定义通用的Item布局
- WebService之Axis2(5):会话(Session)管理
- js 调用IE内置打印控件
- Android--应用开发2(AndroidManfest.xml)
- Aspose.Words组件介绍及使用—基本介绍与DOM概述
- membership source code
- CLR和.Net对象
- c++ 正則表達式
- SVN添加用户权限
- C#数组随机生成四个随机数
- 安卓高级6 CoordinatorLayout
- 小甲鱼Python第十八讲课后习题
- RMQ--ST表
- IDEA新建模块
- Spring源码解读
- FFmpeg制作+x264+faac
- docker and ssh issues
热门文章
- 解决GitHub下载速度慢下载失败的问题
- 用keil调试程序的时候,一点击调试就弹出STARTUP.A51那个窗口,解决办法
- PHP_工厂模式
- pip国内镜像永久
- python函数传参是传值还是指针
- typora破解使用
- Windows10下SecureCRT、SecureFX安装与破解(超级详细)
- java-Stream流的常见方法
- django中读取settings中的相关参数
- CentOS8安装pycharm报错【Can&#39;t connect to X11 window server using &#39;:0&#39; as the value of the DISPLAY variable. 】