Java基础泛型Static方法

来源:互联网 发布:数据对比分析软件 编辑:程序博客网 时间:2024/06/05 03:30
package pkg;/** * Created by sanmao on 2016/6/29. */public class Static {    /**     * 从上篇讲带有限制通配符的博客,我们看到totalArea方法是泛型方法,因为它能够接收不同的参数     * 但是这里没有特定类型的参数表,正如 GenericMeoryCell类的声明中所作的那样,有时候特定类型很重要     * 这或许因为下面几个原因     * 1.该特定类型用作返回类型     * 2.该类型用于声明一个局部变量     * 3.该类型作用在多余一个类型参数中     * 如果是这样,那么必须要声明一种带有若干类型参数的显示泛型方法     * 如下面的代码  是显示一种泛型static方法,该方法对值x在数组arr中进行一系列查找,通过使用一种泛型方法     * 代替使用Object作为参数的非泛型方法,当在对象的数组中查找Apple对象时我们能够得到编译时错误     * 泛型方法特别像是泛型类,因为类型参数表可以使用相同的语法,在泛型方法中的类型参数位于返回类型之前     * @param args     */    public static void main(String[] args) {       // Static s=new Static();    //非静态方法就需要调用对象        LeiXing lx1=new LeiXing(1,2);        LeiXing lx2=new LeiXing(3,4);        LeiXing[] lx=new LeiXing[]{lx1,lx2};        System.out.println(Static.contains(lx,lx2));        //System.out.println(s.contains(lx, lx2)); //非静态方法  就需要调用对象    }    public static  <AnyType> boolean contains(AnyType[] arr,AnyType x) {        //public  <AnyType> boolean contains(AnyType[] arr,AnyType x) {   //声明非静态对象        int z=0;        for (AnyType val : arr) {            z++;            if (x.equals(val)) {                System.out.println(z);                return true;            }        }        return false;    }}//这样写  LeiXing 就不是内部类了  ,内部类是不可以在公共类主方法中 new LeiXing()的  ,外部类就可以class LeiXing{    int x;    int y;    public LeiXing(){};    public LeiXing(int x,int y){        this.x=x;        this.y=y;    }    public int GetX(){        return x;    }    public int GetY(){        return y;    }}
0 0
原创粉丝点击