Каково текущее состояние спецификации для закрытия 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 }; }
-
Так как закрытие будет доступ к кодовому пространству, так же как и отражение, использование закрытия замедляет производительность программы? Если нет, значит ли это, что отражение будет ускорено за счет заимствований, достигнутых в "технологии закрытия"?
Вставить новый вопрос: На самом деле, будет ли код замыкания частью кодового пространства или переменной кучи, потому что я предсказываю, что код закрытия будет восприимчивым к стиранию сборки мусора, правильно?
Могу я попросить вас сосредоточиться на сути вопросов, а не на каких-либо синтаксических ошибках/опечатках/недостающих ключевых словах в примере кода. Любые опечатки/ошибки, пожалуйста, исправьте их для меня. Спасибо.