को कार्यान्वित करने के लिए कैसे मैं जावा कोड को डार्ट पर नीचे पोर्ट करने की कोशिश कर रहा हूं और ऐसा करने के बारे में परेशान हूं।Iterable <E>
जावा में Iterable इंटरफेस है जहां एक विधि के साथ साफ है और इसे लागू करने के लिए एक स्नैप है।
यह कोड डार्ट में सबसे अच्छा कैसे परिवर्तित किया गया है?
/**
* Chess squares represented as a bitmap.
*/
public class ChessSquares implements Iterable<ChessSquare> {
private static class ChessSquaresIterator implements Iterator<ChessSquare> {
long bits;
int nextBit;
public ChessSquaresIterator(long bits) {
this.bits = bits;
nextBit = Long.numberOfTrailingZeros(bits);
}
@Override
public boolean hasNext() {
return (nextBit < 64);
}
@Override
public ChessSquare next() {
ChessSquare sq = ChessSquare.values()[nextBit];
bits = bits & ~sq.bit;
nextBit = Long.numberOfTrailingZeros(bits);
return sq;
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
@Override
public Iterator<ChessSquare> iterator() {
return new ChessSquaresIterator(bits);
}
...
यदि आप बेस क्लास का विस्तार नहीं करना चाहते हैं, तो मिक्सिन क्लास में मिलाएं। –