ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

定义和使用含有泛型的方法,定义和使用含有泛型的接口

2022-07-06 17:35:52  阅读:113  来源: 互联网

标签:定义 含有 接口 public void 泛型 class


定义和使用含有泛型的方法:

定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间

格式:

修饰符  <泛型>  返回值类型  方法名(参数列表(使用泛型)){

方法体;

}

含有泛型的方法,在调用方法的时候确定泛型的数据类型

传递什么类型的参数,泛型就是什么类型

public class fangfa {

    //定义一个含有泛型的方法
    public <A> void meth(A a){
        System.out.println(a);
    }
    //定义一个含有泛型的静态方法
    public static  <W> void fanxin(W w){
        System.out.println(w);
    }

}
/**
 * 测试含有泛型的方法
 */
public class diaoyong {
    public static void main(String[] args) {
        //创建fangfa对象
        fangfa fan = new fangfa();
        /**
         * 调用含有泛型的方法meth
         * 传递什么类型,泛型就是什么类型
         */
        fan.meth(19);
        fan.meth("对你有好感");
        fan.meth(6.24);
        fan.meth(52.10);

        //静态方法,通过类名,方法名(参数)可以直接使用
        fangfa.fanxin("静态方法,不建议创建对象使用");
        fangfa.fanxin(1);
    }
}

 

 

 

定义和使用含有泛型的接口:

含有泛型的接口,第一种使用方式:定义接口的实现类,实现接口,指定接口的泛型

public interface iterator<E> {

E next( );

}

Scanner类实现了Iterator接口,并指定接口的泛型为string,所以重写的next方法泛型默认就是string

public final class Scanner implements Iterator<string>{

public string next(){}

}

/**
 * 定义含有泛型的接口
 */
public interface jiekou <S> {
    public abstract void text(S b);
}
/**
 * 含有泛型的接口,第一种使用方式:定义接口的实现类,实现接口,指定接口的泛型
 * public interface Iterator<E> {
 * E next( );
 * }
 * scanner类实现了Iterator接口,并指定接口的泛型为string,所以重写的next方法泛型默认就是string
 * public final class Scanner implements Iterator<string>{
 * public string next() {}
 * }
 */
public class fanjie implements jiekou<String>{

    @Override
    public void text(String b) {
        System.out.println(b);
    }
}
/**
 * 测试含有泛型的接口
 */
public class shixainlei {
    public static void main(String[] args) {
        //创建fanjie对象
        fanjie jie = new fanjie();
        jie.text("永世");
    }
}

 

含有泛型的接口第二种使用方式:接口使用什么泛型,实现类就使用什么泛型,类跟着接口走

就相当于定义了一个含有泛型的类,创建对象的时候确定泛型的类型

public interface list<E>{

boolean add(E e);

E get(int index);

}

public class ArrayList<E> implements List<E>{

public boolean add(E e){}

public E get(int index){}

}

/**
 * 定义含有泛型的接口
 */
public interface jiekou <S> {
    public abstract void text(S b);
}
/**
 * 含有泛型的接口第二种使用方式:接口使用什么泛型,实现类就使用什么泛型,类跟着接口走
 * 就相当于定义了一个含有泛型的类,创建对象的时候确定泛型的类型
 * public interface list<E>{
 *  boolean add(E e);
 *  E get(int index);
 *  }
 *  public class ArrayList<E> implements List<E>{
 *      public boolean add(E e){}
 *      public E get(int index){}
 *  }
 */
public class xingkou <S> implements jiekou<S>{

    @Override
    public void text(S b) {
        System.out.println(b);
    }
}
/**
 * 测试含有泛型的接口
 */
public class shixainlei {
    public static void main(String[] args) {
        //创建fanjie对象
        fanjie jie = new fanjie();
        jie.text("永世");

        //创建xingkou对象
        xingkou<Integer> kou = new xingkou<>();
        kou.text(19);

        xingkou<Double> xing = new xingkou<>();
        xing.text(5.21);
    }
}

 

 

 

 

 

 

 

 

搜索

复制

标签:定义,含有,接口,public,void,泛型,class
来源: https://www.cnblogs.com/hungui/p/16451682.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有