Java-泛型方法1

2021-01-01  本文已影响0人  hello_world_cxm
package Hello1;
import java.util.ArrayList;
import java.util.List;
public class Test9 {

    public static void main(String[] args) {
        

    }
    static Dog[] findAllDogs(Animal[] as) {  //Animal数组可以装猫狗鸡
        List<Dog> result = new ArrayList<>();
        //Dog o : as编译错误,因为o不一定是狗对象 所以得判断
        for(Animal o : as) {
            if(o instanceof Dog) {  //o instanceof Dog 如果a是Dog类的实例 则o是狗
                //result.add(o); 此时o是animal对象,即使o是狗,但是因为是多态,所以类型还是动物 所以得转类型
                Dog d = (Dog) o;  //将o对象强制转换成狗对象
                result.add(d);
            }
        }
        //Dog[] aa = new Dog[0];可以简写为 new Dog[] {} 空数组
        Dog[] dd = result.toArray(new Dog[] {});  //参数是什么类型,就能转成什么类型的数组
        //Dog[] dd = result.toArray(); 如果是无参的toArray最终只能转成Object类型的数组
        return dd;
    }

}

上一篇下一篇

猜你喜欢

热点阅读