java高薪之路__004_泛型

参考地址:
1. http://www.cnblogs.com/lwbqqyumidi/p/3837629.html2. http://www.cnblogs.com/abcwt112/p/4735068.html3. http://www.cnblogs.com/chyu/p/4630798.html

 1 package learn.JavaBasics.Class;
 2
 3 public class GenericDemo {
 4     private class Test<E> {
 5         private E i;
 6
 7         public E get() {
 8             return this.i;
 9         }
10
11         public void set(E str) {
12             this.i = str;
13         }
14
15         public void echo() {
16             System.out.println("echo test");
17         }
18     }
19
20     public interface testInterface<E> {
21         public E print();
22     }
23
24     /**
25      * @param args
26      */
27     public static void main(String[] args) {
28         // TODO Auto-generated method stub
29         GenericDemo g = new GenericDemo();
30
31         Test<Integer> a = g.new Test<Integer>();
32         a.set(112);
33         System.out.println(a.get());
34
35         Test<String> s = g.new Test<String>();
36         s.set("hello");
37         System.out.println(s.get());
38
39         g.put(a);
40         g.put(s);
41
42 //        g.putExtends(a);
43         g.putExtends(s);
44
45         g.putSuper(a);
46 //        g.putSuper(s);
47
48         System.out.println("*****");
49
50         g.question(a).echo();
51         g.question(s).echo();
52
53         String is = new testInterface<String>() {
54             @Override
55             public String print() {
56                 // TODO Auto-generated method stub
57
58                 return "Interface Generic Test";
59             }
60         }.print();
61
62         System.out.println(is);
63     }
64
65     public void put(Test<?> t) {
66         System.out.println(t.get());
67     }
68
69     public void putExtends(Test<? extends String> t) {
70         System.out.println(t.get());
71     }
72
73     public void putSuper(Test<? super Integer> t) {
74         System.out.println(t.get());
75     }
76
77     public Test<?> question(Test<?> t) {
78         System.out.println(t);
79         return t;
80     }
81 }

时间: 2024-08-03 11:48:04

java高薪之路__004_泛型的相关文章

java高薪之路__009_网络

1. InetAddress类2. Socket: IP地址和端口号的结合,socket允许程序把网络连接当成一个流,数据在两个socket间通过IO传输, 通信的两端都要有socket. 主动发起通信请求的是客户端,等待通信请求的是服务端3. DatagramSocket 和 DatagramPacket实现了UDP协议网络程序, 使用DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达 DatagramPacket对象封装了UDP数

java高薪之路__002_异常处理

自定义异常 1 package learn.JavaBasics.Class; 2 3 import java.util.Date; 4 5 /** 6 * 如何自定义一个异常类 7 * 1. 继承一个现有的异常类 8 * 2. 提供一个序列号,提供几个重载的构造器 9 * 3. 像其异常一样使用 10 */ 11 public class MyException extends RuntimeException { 12 private static final long serialVers

java高薪之路__006_多线程

线程的创建有两种方式 1 package learn.JavaBasics.Class; 2 3 public class ThreadDemo extends Thread { 4 private static int count = 1; 5 6 public void run() { 7 System.out.println("Thread: "+count+" has started"); 8 ++count; 9 } 10 11 /** 12 * @par

java高薪之路__001_类

protected Class<!--?--> loadClass(String name, boolean resolve)throws ClassNotFoundException{ //加上锁,同步处理,因为可能是多线程在加载类 synchronized (getClassLoadingLock(name)) { //检查,是否该类已经加载过了,如果加载过了,就不加载了 Class c = findLoadedClass(name); if (c == null) { long t0 =

【转】JAVA自学之路

JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势. 一些新闻文章很有可能是枪手写的,不必太过相信.国外背景的

马士兵:JAVA自学之路

JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训.决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢?我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势.一些新闻文章很有可能是枪手写的,不必太过相信.国外背景的教师和课

Java进阶之路

Java进阶之路--从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题.希望这篇文章会是你看到过的最全面最权威的回答. 一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的.下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法. 1-1 常

Java学习之路(二)--Thinking in Java

针对昨天Java学习之路(一)--Thinking in Java中的类的静态方法不能访问创建非静态类,给出了将内部类修改成为static静态类,操作方便简单.现在给出第二种不需要添加删除的另一种极为高效的方式.可以将内部类从你所创建的类中复制粘贴到类外,作为一个外部类,在static主方法中就可以创建类的引用了. 源代码如下: ? class test{ int s; char c; } public class test1 { public static class test{ int s;

Java学习之路:1、HelloWorld

似乎每种语言都是从HelloWorld开始的,所以,我的第一个java程序,也应该是这样开始的! 1.配置好jdk后,开始编写HelloWorld.java package second;//这个应该在我的理解就相当于php的命名空间 public class HelloWorld {//如同php中的声明一个类,不过php是不需要加public这样的类型修饰符 public static void main(String[] args){//声明一个方法,不过不懂的是为什么一定要static: