PROPOSAL: Enhanced while statement (original) (raw)
Marek Kozieł develop4lasu at gmail.com
Sun Mar 29 16:27:19 PDT 2009
- Previous message: Mgmt query re Integer Literals
- Next message: PROPOSAL: Enhanced while statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
AUTHOR: Lasu aka Marek Kozieł
OVERVIEW
FEATURE SUMMARY: Enhanced while statement allow to iterate through iterator.
MAJOR ADVANTAGE: People will stop working around for-each loop.
MAJOR BENEFIT(s):Allow to easy express operation on iterator(s), and iterating over non linear Iterators would be easier.
MAJOR DISADVANTAGE: Automatic loop over Iterator my be problem for some peoples.
ALTERNATIVES: Using while loop.
EXAMPLES
SIMPLE EXAMPLE: String toString(Iterator list){ if (!list.hasNext()) return "[]"; StringBuilder ret = new StringBuilder(); ret.append('[').append(list.next()); while (String string : list) { ret.append(',').append(list.next()); } return ret.append(']').toString(); }
ADVANCED EXAMPLE: String toString(Iterator list){ while (Transfer t : list) { ArrayList data = new ArrayList(); if ( t.isOpeningTag() ) while (Transfer t : list){ if (t.isClosingTag()) break; data.add(t.getData()); } else { list.remove(); // OK: no interactions throw new Exception("..."); } list.remove(); // warning list here can refer to last element of inner loop // Process chunk }
} DETAILS
SPECIFICATION: Same as JLS 14.14.2, except: The Expression must either have type Iterator, or a compile-time error occurs. Let I be the type of the expression Expression
If Expression is directly field or variable or parameter (ExpressionVariable) then additional checking is performed: If Variable is used as Expression for while-each loop inside while-each loop over same Variable then Variable occurring after inner while-each loop (but in outer while-each loop) will compile with warning “Variable state refer to inner loop”.
COMPILATION: Same as for-each (almost).
TESTING: Same as while loops.
LIBRARY SUPPORT: None.
REFLECTIVE APIS: No.
OTHER CHANGES: No.
MIGRATION: None.
COMPATIBILITY Except code, which is only forward compatibility.
REFERENCES Enhanced for each loop iteration control
-- Pozdrowionka. / Regards. Lasu aka Marek Kozieł
http://lasu2string.blogspot.com/
- Previous message: Mgmt query re Integer Literals
- Next message: PROPOSAL: Enhanced while statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]