体会泛型的重要性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DongGeDeBoKe/article/details/83928165

举例说明,如果两个类都有一个方法,就是获取自己类型的对象,例如:

 public class Dog implements AnimalDog{

        @Override
        public AnimalDog getAnimal() {
            return null;
        }
    }

    public interface AnimalDog{
        public AnimalDog getAnimal();
    }

    public class Cat implements AnimalCat {

        @Override
        public AnimalCat getAnimal() {
            return null;
        }
    }

    public interface AnimalCat{
        public AnimalCat getAnimal();
    }

两个类有同样的方法,我们就会想到,那就再写一个接口,好我们就再建一个,
那问题来了,我们只能返回Object类型,因为不知道是什么类型

 public interface Animal{
        public Object getAnimal();
    }

接口都继承这个接口

   public interface AnimalCat extends Animal{
        public AnimalCat getAnimal();
    }
      public interface AnimalDog extends Animal{
        public AnimalDog getAnimal();
    }

似乎挺好的,但是有没有发现麻烦许多,泛型就可以解决这个问题了,代码重用
其实只需要定义一个这样的接口就行了.

  public interface Animal<T>{
        public <T> T  getAnimal();
    }

然后这样使用

 public class Dog implements Animal<Dog>{

        @Override
        public Dog getAnimal() {
            return null;
        }
    }

    public class Cat implements Animal<Cat> {

        @Override
        public Cat getAnimal() {
            return null;
        }
    }
    
    public interface Animal<T>{
        public <T> T  getAnimal();
    }

多简单的代码,这就是泛型的魅力。好了以后有什么好的东西都会分享出来,泛型要多使用才能有所收获,理解的更深,框架都少不了这个的。

猜你喜欢

转载自blog.csdn.net/DongGeDeBoKe/article/details/83928165