日期:2014-05-20  浏览次数:20676 次

一个静态方法能够将另一个静态方法作为参数吗?
我在http://book.douban.com/subject/19952400/这本书里看到说不行
但是

public class Test1 {
public static void main(String[] args) {
A.abc(A.xyz());
}
}
class A{
public static void abc(int x){
System.out.println(x);
}
public static int xyz(){
return 1;
}
}

以上代码可以编译运行
书上是错的吗?
------解决方案--------------------
那是因为,xyz返回了一个int型,这个值作为abc的入参的。
LZ可以试试,将xyz返回类型改成String什么的,就会报错了。
------解决方案--------------------
没错, A.abc(A.xyz());相当于 int x = A.xyz();A.abc(x);
------解决方案--------------------
这个没问题,可以运行的。其实静态方法和类的关系不大,你这其实等于在面向过程编程中一个函数调了另一个函数而已
------解决方案--------------------
对啊,这两者没有直接的冲突的
------解决方案--------------------
http://baike.baidu.com/view/1289389.htm