为什么Java不能静态方法当作另外一个静态方法的参数?

FashionCodeBoy 2016-10-07 05:11:15
Why some languages ​​can be a static method as an argument, why not Java
...全文
342 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_08_06_02 2016-10-09
  • 打赏
  • 举报
回复
码上有神 2016-10-08
  • 打赏
  • 举报
回复
我发着玩的,你们别管我,我是新人,在试网站的功能
码上有神 2016-10-08
  • 打赏
  • 举报
回复

package test;

import java.util.Scanner;

public class SymmetricString {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int[] arr=new int[5];
		for(int x=0;x<arr.length;x++){
			System.out.println("输入第"+(x+1)+"个数字");
			int input=sc.nextInt();
			arr[x]=input;
		}
		Symmetric(arr);
	}
	private final static void Symmetric(int[] arr){
		StringBuilder  Sa=new StringBuilder();
		for(int x=0;x<arr.length;x++){
			Sa.append(arr[x]);
		}
		String SA=Sa.toString();
		StringBuilder Sa2=new StringBuilder(SA);
		if(Sa2.reverse().equals(Sa))
		System.out.println("YES");
		else
		System.out.println("NO");
	}
}
  • 打赏
  • 举报
回复
一楼好详细,楼主抽个时间看看
游一游走一走 2016-10-08
  • 打赏
  • 举报
回复
JAVA can,please look at java1.8 lambda.

import java.util.stream.IntStream;

public class Test {
    public static void staticMethod(Integer echo) {
        System.out.println(echo);
    }

    public static void main(String[] args) {
        IntStream.range(1, 100).forEach(Test::staticMethod);
    }
}
爱睡觉的阿狸 2016-10-08
  • 打赏
  • 举报
回复
楼上好详细,
attilax 2016-10-07
  • 打赏
  • 举报
回复
当然是可以的哈。Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针 1.1. java方法引用(Method References) 与c#委托与脚本语言js的函数指针这几个概念是类似的, 1 1.2. java方法引用(Method References) 方法引用分为4类 1 1.3. 范例 3 1.1.java方法引用(Method References) 与c#委托与脚本语言js的函数指针这几个概念是类似的, C#委托本质是函书接口,js是duck type原理。 1.2.java方法引用(Method References) 方法引用分为4类 方法引用的唯一用途是支持Lambda表达式的简写,不用Lambda表达式,就用不着方法引用 方法引用分为4类,常用的是前三种。方法引用也受到访问控制权限的限制,可以通过在引用位置是否能够调用被引用方法来判断。具体分类信息如下:  引用静态方法  ContainingClass::staticMethodName  例子: String::valueOf,对应的Lambda:(s) -> String.valueOf(s)  比较容易理解,和静态方法调用相比,只是把.换为::   引用特定对象的实例方法  containingObject::instanceMethodName  例子: x::toString,对应的Lambda:() -> this.toString()  与引用静态方法相比,都换为实例的而已   引用构造函数  ClassName::new  例子: String::new,对应的Lambda:() -> new String()  构造函数本质上是静态方法,只是方法名字比较特殊。   引用特定类型的任意对象的实例方法  ContainingType::methodName  例子: String::toString,对应的Lambda:(s) -> s.toString()  太难以理解了。难以理解的东西,也难以维护。建议还是不要用该种方法引用。  实例方法要通过对象来调用,方法引用对应Lambda,Lambda的第一个参数会成为调用实例方法的对象。  1.3.范例 /** * 静态方法当作另外一个静态方法 * @param args */ public static void main(String[] args) { test( class1::method2); } private static void test( Runnable object) { object.run(); } private static void method2() { System.out.println("aa"); } Ref参考资料 JDK1.8新特性之方法引用(Method References) - 走马行酒醴,驱车布鱼肉 - 博客频道 - CSDN.NET.html 作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )  汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com 转载请注明来源: http://blog.csdn.net/attilax Atiend

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧