JAVA——泛型类和泛型方法(静态方法泛型)
泛型类定义的泛型,在整个类中有效。如果被方法是用,那么
泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。
为了让不同的方法可以操作不同类型,而且类型还不确定。那么
可以将泛型定义在方法上。
泛型类
class Demo<T>
{
public void show(T t)
{
System.out.println("show: "+t);
}
public void print(T t)
{
System.out.println("show: "+t);
}
}
class GenericDemo4
{
public static void main(String[] args)
{
Demo<Integer>d = new Demo<Integer>();
d.show(new Integer(4));
Demo<String>d1 = new Demo<String>();
d1.print("haha");
}
}
结果:
show: 4
show: haha
泛型方法
class Demo
{
public <T> void show(T t)
{
System.out.println("show: "+t);
}
public <Q> void print(Q q)
{
System.out.println("print:"+q);
}
}
class GenericDemo4
{
public static void main(String[] args)
{
Demo d = new Demo();
d.show("hello boy!");
d.print("Alex i love you !");
}
}
结果:
show: hello boy!
print:Alex i love you !
同时定义泛型类和泛型方法
class Demo<T>
{
public void show(T t)
{
System.out.println("show: "+t);
}
public <Q> void print(Q q)
{
System.out.println("print:"+q);
}
}
class GenericDemo4
{
public static void main(String[] args)
{
Demo <String> d = new Demo<String>();
d.show("hello boy!");
d.print("Alex i love you !");
d.print(5);
d.print("heiei");
}
}
结果:
show: hello boy!
print:Alex i love you !
print:5
print:heiei
特殊之处:
静态方法不可以访问类上定义的泛型
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。
class Demo<T>
{
public void show(T t)
{
System.out.println("show: "+t);
}
public <Q> void print(Q q)
{
System.out.println("print:"+q);
}
public static <W>void method(W t)
{
System.out.println("method: "+t);
}
}
class GenericDemo4
{
public static void main(String[] args)
{
Demo <String> d = new Demo<String>();
d.show("hello boy!");
d.print("Alex i love you !");
d.print(5);
d.print("heiei");
Demo.method("hihi");
}
}
结果:
show: hello boy!
print:Alex i love you !
print:5
print:heiei
method: hihi
泛型定义在接口上
interface Inter<T>
{
void show(T t);
}
//第一种
class InterImpl implements Inter<String>
{
public void show(String t)
{
System.out.println("show :"+t);
}
}
/*第二种
class InterImpl<T>implements Inter<T>
{
public void show(T t)
{
System.out.println("show :"+t);
}
}
*/
class GenericDemo5
{
public static void main(String[] args)
{
/*
InterImpl<Integer> i = new InterImpl<Integer>();
i.show(4);
*/
InterImpl i = new InterImpl();
i.show("haha");
}
}
结果:
show :haha
第一种相对来说就比较死,固定为String类型了。而第二种可以自己定义。
JAVA——泛型类和泛型方法(静态方法泛型)的更多相关文章
- paip.自定义java 泛型类与泛型方法的实现总结
paip.自定义java 泛型类与泛型方法的实现总结 ============泛型方法 public static <atiType,retType> retType reduce ...
- 转:C# 泛型编程之泛型类、泛型方法、泛型约束
C# 泛型编程之泛型类.泛型方法.泛型约束 分类: asp.net c#2012-08-07 17:36 5998人阅读 评论(0) 收藏 举报 c#编程classobject编译器struct 泛型 ...
- C# 泛型编程之泛型类、泛型方法、泛型约束
来自Hauk的文章 C# 泛型编程之泛型类.泛型方法.泛型约束 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型. 泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为 ...
- C#中泛型类,泛型方法,泛型约束实际应用
前言 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型. 泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用.在定义泛型类时,在对客户端代码能够在实例化类时 ...
- Java泛型类和泛型方法
java编程思想说道: 泛型类是应用在整个类上,但同时可以在类中包含参数化方法,而这个方法所在的类可以是泛型,也可以不是泛型,也就是说是否有泛型方法,与其所在的类是否是泛型类没有关系. 泛型方法是的该 ...
- Java 泛型-泛型类、泛型方法、泛型接口、通配符、上下限
泛型: 一种程序设计语言的新特性,于Java而言,在JDK 1.5开始引入.泛型就是在设计程序的时候定义一些可变部分,在具体使用的时候再给可变部分指定具体的类型.使用泛型比使用Object变量再进行强 ...
- Java基础----Java---集合框架---泛型、泛型方法、静态方法泛型、泛型接口、泛型限定、泛型类
泛型:jdk1.5后的新特性,用于解决安全问题,是一个安全机制. 好处: 1.将运行时的异常出现问题classcastException.转移到了编译时期.方便程序员调试解决问题,让运行事情问题减少, ...
- JAVA之旅(二十一)——泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符
JAVA之旅(二十一)--泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符 不知不觉JAVA之旅已经写到21篇了,不得不感叹当初自己坚持要重学一遍JAVA的信念,中途也算 ...
- Java泛型详解:<T>和Class<T>的使用。泛型类,泛型方法的详细使用实例
一.引入 1.泛型是什么 首先告诉大家ArrayList就是泛型.那ArrayList能完成哪些想不到的功能呢?先看看下面这段代码: [java] view plain copy ArrayList& ...
随机推荐
- 利用Palette库来取得图片中的主要色彩
其实就我对开源库的了解,有很多开源库都能实现自动计算出任意一张图片中的主要色彩的功能,这种看似神奇实则枯燥的技术很容易适用到手机的UI中.根据不同的背景定制不同的UI,这个在最新的Android Ma ...
- List集合中的数据按照某一个属性进行分组
有的时候,我们需要在java中对集合中的数据进行分组运算.例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的ty ...
- osx的du以字节计算
https://stackoverflow.com/questions/5794437/difference-in-size-shown-by-du-command-and-get-info-on-m ...
- exchange 2010
Set-MailboxFolderPermission dalian:\Calendar -User Default -AccessRights Reviewer C:\>$rooms = Ge ...
- Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 ...
- java将XML文档转换成json格式数据
功能 将xml文档转换成json格式数据 说明 依赖包:1. jdom-2.0.2.jar : xml解析工具包;2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 ...
- frp官方中文文档
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议. 目录 frp 的作用 开发状态 架构 使用示例 通过 ssh 访问公司内网机器 通过自定义 ...
- ubuntu 安装 android studio
总共分三个步骤: 安装JDK 这里引用下别人的安装过程http://blog.csdn.net/bhq2010/article/details/6839762 注:android studio 版本为 ...
- 利用blob对象实现粘贴图片
blob的一个常用应用场景,就是获取剪切板上的数据来进行粘贴的操作.例如通过QQ截图后,需要在网页上进行粘贴操作. 粘贴图片我们需要解决下面几个问题 1.监听用户的粘贴操作 2.获取到剪切板上的数据 ...
- 如何启动docker service
From powershell prompt following works for me with no issues restart-service *docker* [注意] 我试了一下,这个命 ...