Java自体には直接同等のものがないことは知っていますが、おそらくサードパーティですか?
本当に便利です。現在、ツリー内のすべてのノードを生成する反復子を実装したいと考えています。これは、yield を使用した約 5 行のコードです。
Java自体には直接同等のものがないことは知っていますが、おそらくサードパーティですか?
本当に便利です。現在、ツリー内のすべてのノードを生成する反復子を実装したいと考えています。これは、yield を使用した約 5 行のコードです。
ここでは非常に古い質問であることを知っています。上記の2つの方法があります。
yield
明らかにリソースコストがかかるスレッドベース。ただし、Java でジェネレーターを実装する 3 番目の、おそらく最も自然な別の方法があります。yield
これは、C# 2.0+ コンパイラーがyield return/break
生成のために行う方法に最も近い実装です: lombok-pg。これは完全にステート マシンに基づいておりjavac
、ソース コード AST を操作するには との緊密な協力が必要です。残念ながら、lombok-pg のサポートは中止されたようで (1 年か 2 年以上リポジトリ活動がありません)、元のProject Lombokには残念ながらこのyield
機能がありません (ただし、Eclipse のような優れた IDE と IntelliJ IDEA のサポートがあります)。