博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA——泛型类和泛型方法(静态方法泛型)
阅读量:6235 次
发布时间:2019-06-22

本文共 2545 字,大约阅读时间需要 8 分钟。

泛型类定义的泛型,在整个类中有效。如果被方法是用,那么 

泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。

为了让不同的方法可以操作不同类型,而且类型还不确定。那么 

可以将泛型定义在方法上。

泛型类

class Demo
{ 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
d = new Demo
(); d.show(new Integer(4)); Demo
d1 = new Demo
(); d1.print("haha"); } }

 

结果: 

show: 4 
show: haha

泛型方法

class Demo{    public 
void show(T t) { System.out.println("show: "+t); } public
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
{ public void show(T t) { System.out.println("show: "+t); } public
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 !"); d.print(5); d.print("heiei"); } }

 

结果: 

show: hello boy! 
print:Alex i love you ! 
print:5 
print:heiei

特殊之处: 

静态方法不可以访问类上定义的泛型 
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。

class Demo
{ public void show(T t) { System.out.println("show: "+t); } public
void print(Q q) { System.out.println("print:"+q); } public static
void method(W t) { System.out.println("method: "+t); } } class GenericDemo4 { public static void main(String[] args) { Demo
d = new Demo
(); 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
{ void show(T t); } //第一种 class InterImpl implements Inter
{ public void show(String t) { System.out.println("show :"+t); } } /*第二种 class InterImpl
implements Inter
{ public void show(T t) { System.out.println("show :"+t); } } */ class GenericDemo5 { public static void main(String[] args) { /* InterImpl
i = new InterImpl
(); i.show(4); */ InterImpl i = new InterImpl(); i.show("haha"); } }

 

结果: 

show :haha 
第一种相对来说就比较死,固定为String类型了。而第二种可以自己定义。

转载地址:http://pwhna.baihongyu.com/

你可能感兴趣的文章
调试js碰到循环断点(debugger),应该怎么做?
查看>>
JB的测试之旅-网站的响应式与自适应
查看>>
图解 SQL 里的各种 JOIN
查看>>
2018 总结
查看>>
网页图标的优雅使用与总结
查看>>
iOS 录制视频时,添加水印
查看>>
工厂模式 抽象模式
查看>>
搞懂“分布式锁”,看这篇文章就对了
查看>>
1 序言 [全栈攻城师的技术札记]
查看>>
LeetCode之DI String Match(Kotlin)
查看>>
LeetCode之Two Sum IV Input is a BST(Kotlin)
查看>>
iOS 瀑布流之栅格布局
查看>>
Android中Activity的启动流程
查看>>
Parity钱包漏洞全分析及区块链安全风险应对措施
查看>>
到底是用"静态类"还是单例
查看>>
Redis RedLock 完美的分布式锁么?
查看>>
深入剖析Redis系列(八) - Redis数据结构之集合
查看>>
js:原生单张图片延迟加载(图片自己找)
查看>>
关于iOS中委托(Delegate)的几点看法
查看>>
读书笔记-Java高并发程序设计(一)
查看>>