zoukankan      html  css  js  c++  java
  • JAVA泛型

    当集合中存储的对象类型不同时,那么会导致程序在运行的时候的转型异常

     1 package cn.nn;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Iterator;
     5 
     6 public class Generic_test {
     7 
     8     public static void main(String[] args) {
     9         ArrayList arr = new ArrayList();
    10         arr.add(new Tiger("华南虎"));
    11         arr.add(new Tiger("东北虎"));
    12         arr.add(new Sheep("喜羊羊"));
    13 
    14         System.out.println(arr);
    15 
    16         
    17           Iterator it = arr.iterator(); 
    18           while (it.hasNext()) {
    19               Tiger nextObject = (Tiger)it.next();
    20               Tiger tiger = nextObject; 
    21               tiger.eat();
    22           
    23           }
    24          
    25     }
    26 }
    27 
    28 class Tiger {
    29     String name;
    30 
    31     public Tiger() {
    32 
    33     }
    34 
    35     public Tiger(String name) {
    36         this.name = name;
    37     }
    38 
    39     public String toString() {
    40         return "Tiger@name:" + this.name;
    41     }
    42 
    43     public void eat() {
    44         System.out.println(this.name + "吃羊");
    45     }
    46 
    47 }
    48 
    49 class Sheep /*extends Tiger*/{
    50     String name;
    51 
    52     public Sheep() {
    53 
    54     }
    55 
    56     public Sheep(String name) {
    57         this.name = name;
    58     }
    59 
    60     public String toString() {
    61         return "Sheep@name:" + this.name;
    62     }
    63     public void eat() {
    64         System.out.println(this.name + "吃青草");
    65         
    66     }
    67 }

    出现 Exception in thread "main" java.lang.ClassCastException: cn.nn.Sheep cannot be cast to cn.nn.Tiger at cn.nn.Generic_test.main(Generic_test.java:19)错误。

     1 package cn.nn;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Iterator;
     5 
     6 public class Generic_test {
     7 
     8     public static void main(String[] args) {
     9         ArrayList arr = new ArrayList();
    10         arr.add(new Tiger("华南虎"));
    11         arr.add(new Tiger("东北虎"));
    12         arr.add(new Sheep("喜羊羊"));
    13 
    14         System.out.println(arr);
    15 
    16         
    17           Iterator it = arr.iterator(); 
    18           while (it.hasNext()) {
    19               Tiger nextObject = (Tiger)it.next();
    20               Tiger tiger = nextObject; 
    21               tiger.eat();
    22           
    23           }
    24          
    25     }
    26 }
    27 
    28 class Tiger {
    29     String name;
    30 
    31     public Tiger() {
    32 
    33     }
    34 
    35     public Tiger(String name) {
    36         this.name = name;
    37     }
    38 
    39     public String toString() {
    40         return "Tiger@name:" + this.name;
    41     }
    42 
    43     public void eat() {
    44         System.out.println(this.name + "吃羊");
    45     }
    46 
    47 }
    48 
    49 class Sheep extends Tiger{
    50     String name;
    51 
    52     public Sheep() {
    53 
    54     }
    55 
    56     public Sheep(String name) {
    57         this.name = name;
    58     }
    59 
    60     public String toString() {
    61         return "Sheep@name:" + this.name;
    62     }
    63     public void eat() {
    64         System.out.println(this.name + "吃青草");
    65         
    66     }
    67 }

  • 相关阅读:
    eclipse 设置书签标记(标签-Bookmark
    Android 中PopupWindow使用 (转)
    Android中使用dimen定义尺寸(转)
    Eclipse常用的十个方便的快捷键
    十一、Android学习第十天——项目开始(转)
    十、Android学习第九天——小结(转)
    九、Android学习第八天——广播机制与WIFI网络操作(转)
    八、Android学习第七天——XML文件解析方法(转)
    七、Android学习第六天——SQLite与文件下载(转)
    六、Android学习第五天——Handler的使用(转)
  • 原文地址:https://www.cnblogs.com/LQLin168/p/10283531.html
Copyright © 2011-2022 走看看