zoukankan      html  css  js  c++  java
  • java 泛型小结

      1 public class GenericsDemo06 {
      2  
      3     public static void main(String[] args) {
      4  
      5         Box<String> name = new Box<String>("corn");
      6         Box<Integer> age = new Box<Integer>(712);
      7         Box<Number> number = new Box<Number>(314);
      8  
      9         getData(name);
     10         getData(age);
     11         getData(number);
     12         System.out.println("=============");
     13         getData2(name);
     14         getData2(age);
     15         getData2(number);
     16         System.out.println("=============");
     17         //getUpperNumberData(name); // 1
     18         getUpperNumberData(age);    // 2
     19         getUpperNumberData(number); // 3
     20         System.out.println("=============");
     21         Box<String> i1 = new Box<String>() ;      // 声明String的泛型对象 
     22         Box<Object> i2 = new Box<Object>() ;      // 声明Object的泛型对象 
     23         i1.setData("string");
     24         i2.setData("string2");
     25         getDownNumberData(i2);
     26         String aString=new String("string2");
     27         i2.setData(aString);
     28         
     29         getDownNumberData(i1);
     30         getDownNumberData(i2);
     31         getDownNumberData(name);
     32         System.out.println("=============");
     33         myprint.print("dad","dawddd","1212323");
     34         myprint.print2();
     35          
     36          
     37     }
     38  
     39     public static void getData(Box<?> data) {
     40         System.out.println("data :" + data.getData());
     41     }
     42      
     43     public static void getData2(Box<?> data) {
     44         System.out.println("data :" + data);
     45     }
     46      
     47     //只能接收Number及其Number的子类 
     48     public static void getUpperNumberData(Box<? extends Number> data){
     49         System.out.println("data :" + data.getData());
     50     }
     51     //// 只能接收String或Object类型的泛型 
     52     public static void getDownNumberData(Box<? super String> data){
     53         System.out.println("data :" + data.getData());
     54     }
     55  
     56 }
     57 //可变长参数用法
     58 /*
     59 (1)只能出现在参数列表的最后;
     60 (2)...位于变量类型和变量名之间,前后有无空格都可以;
     61 (3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。
     62 */
     63 class myprint {
     64     public static void print(String... args) {
     65         for (int i = 0; i < args.length; i++) {
     66            System.out.print(args[i]+",");
     67         }
     68         //高级for
     69         for (String i : args)
     70             System.out.print(i +",");
     71  
     72     }
     73      
     74     //不可以再写一个类似的,与上面可能重复
     75     //public static void print(String test,String...args ){
     76         //System.out.println("----------");
     77     //}
     78     //换行符的用法
     79     public static void print2(){
     80     //注意在将流写入文件时,换行应根据操作系统的不同来决定。   
     81     //在程序我们应尽量使用System.getProperty("line.separator")来获取当前系统的换 行符,而不是写
    或
    。   
     82     //操作系统的不同,换行符操也不同:      /r Mac      /n Unix/Linux       /r/n Windows
     83     //'
    '是回车,'
    '是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。
     84     //当我们在java控制台输出的时候,
    和
    都能达到换行的效果。   
     85     if (System.getProperty("line.separator").equals("
    ")) {   
     86         System.out.println("\r\n is for windows");   
     87     } else if (System.getProperty("line.separator").equals("
    ")) {   
     88         System.out.println("\r is for Mac");   
     89     } else if (System.getProperty("line.separator").equals("
    ")) {   
     90         System.out.println("\n is for Unix\Linux");   
     91     }   
     92          
     93     System.out.println("aa
    bb");   
     94     System.out.println("aa
    bb");   
     95     System.out.println("aa	bb");
     96 }
     97 }
     98  
     99  
    100 class Box<T> {
    101     private T data;
    102     public Box() {
    103     }
    104  
    105     public Box(T data) {
    106         setData(data);
    107     }
    108     public T getData() {
    109         return data;
    110     }
    111     public void setData(T data) {
    112         this.data = data;
    113     }
    114  
    115 }
  • 相关阅读:
    单臂路由
    C#同步、异步编程
    Grid控件
    使用WrapPanel和DockPanel
    使用StackPanel进行简单地布局
    WPF布局
    SQL update 多表连接方法
    创建一个自定义的Application类
    Application全局应用程序类
    XAMl使用其他命名空间中的类型及加载和编译
  • 原文地址:https://www.cnblogs.com/lgjbky/p/5866425.html
Copyright © 2011-2022 走看看