Java 클로저의 현재 사양은 무엇입니까? 제안 된 자바 폐쇄 사양에서Java 클로저 유형, 변수, 배열 및 컬렉션
, 우리는 폐쇄의 배열이나 컬렉션을 만들 수 있을까?
그렇다면이 구문을 사용할 수 있습니까?{int x, int y => boolean b}[] comparisonSwitch = { {int i, int j => return i>j}, {int i, int j => return j<i}, {int i, int j => return j==i} } boolean compare(int acase, int a, int b){ return comparisonSwitch[acase].invoke(a,b); }
정상적인 방법은 비 익명 폐쇄로 간주됩니까?
그러면 다음 구문을 사용할 수 있습니까?public class Asdf { public boolean gt(int x, int y){ return x>y; } public boolean lt(int x, int y){ return x<y; } public boolean eq(int x, int y){ return x==y; } {int x, int y => boolean b} GT = gt; {int x, int y => boolean b}[] comparisonSwitch = { gt, lt, eq } }
즉, 운영 체제와 상호 교환 가능한 클로저 및 방법은 무엇입니까?
다음 구문을 사용할 수 있습니까?// declare a method that has a closure type as an argument void closurator({String s => int a} findlen){ // do whatever } String s = "hello"; void useClosurator(){ // invoke the method by supplying a non-anonymous method // of an object closurator(s.indexOf(String ss)); }
인터페이스에서 클로저 유형을 어떻게 지정할 수 있습니까?
메소드에 대한 최종/상수 참조를 효과적으로 선언하여 다음 작업을 수행 할 수 있습니까? 폐쇄 코드 공간에 액세스 것 때문에interface Closuration { public class Asdf { static public boolean gt(int x, int y){ return x>y; } static public boolean lt(int x, int y){ return x<y; } static public boolean eq(int x, int y){ return x==y; } } {int x, int y => boolean b}[] comparisonSwitch = { Asdf.gt, Asdf.lt, Asdf.eq }; }
, 반사, 폐쇄 사용하는 것이하는 것처럼 프로그램의 성능이 저하? 그렇지 않다면, "폐쇄 기술"에서 이루어진 진보를 빌리 자면 그 반성이 가속화 될 것인가? 내가 그 폐쇄 코드는 바로, 가비지 수집 닦아에 취약 할 것이라고 예측하고 있기 때문에, 는 사실, 폐쇄 코드는 코드 공간 또는 변수 힙의 일부가 될 것입니다 :
새로운 질문을 삽입?
예제 코드의 구문 오류/오타/누락 된 키워드가 아닌 질문의 요점에 초점을 맞추어달라고 요청할 수 있습니다. 어떤 오타/오류라도 나를 바로 잡으십시오. 고맙습니다.
"진정한 질문이 아님"으로이 질문을 끝내기가 너무 성급한 분이라면 http://stackoverflow.com/questions/2198734/demonstrate-prove-that에서 내 자신의 의견을 읽어보십시오. -heap-sort-is-on-log2n-time-closed : 숙제가 아닙니다. 일부 전략 결정을 내리기 위해 정직한 도움이 필요한 50 세의 고대 프로그래머. –
Neal Gafter의 폐쇄 제안이나 현재 토론중인 람다에 대한 질문입니까? –
현재 프로젝트 람다 : Java 언어 사양 초안 0.1 http://mail.openjdk.java.net/pipermail/lambda-dev/attachments/20100122/3764c21a/attachment.txt 버전 0.2가 준비 중입니다. –