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;
}
}
Java基础泛型Static方法
最新推荐文章于 2024-08-14 04:40:23 发布