+++ /dev/null
-import static java.lang.Math.*; // gratuitous test of static import
-import static java.lang.System.out; // ditto
-import java.util.*;
-class TestJSR201 {
- enum Color { red, green, blue ; };
- public static void main(String... args/* varargs */) {
- /* for each on multi-dimensional array */
- int[][] iaa = new int[10][10];
- for (int ia[] : iaa) {
- for (int i : ia)
- out.print(i); // use static import.
- out.println();
- }
- /** alternate syntax: */
- for each (int ia[] in iaa)
- for each (int i in ia) {
- out.println(i);
- }
- /* */
- for (Color c : Color.VALUES) {
- switch(c) {
- case Color.red: out.print("R"); break;
- case Color.green: out.print("G"); break;
- case Color.blue: out.print("B"); break;
- default: assert false;
- }
- }
- out.println();
- }
- // complex enum declaration, from JSR-201
- public static enum Coin {
- penny(1), nickel(5), dime(10), quarter(25);
- Coin(int value) { this.value = value; }
- private final int value;
- public int value() { return value; }
- }
- public static class Card implements Comparable, java.io.Serializable {
- public enum Rank { deuce, three, four, five, six, seven, eight, nine,
- ten, jack, queen, king, ace }
- public enum Suit { clubs, diamonds, hearts, spades }
-
- private final Rank rank;
- private final Suit suit;
-
- private Card(Rank rank, Suit suit) {
- if (rank == null || suit == null)
- throw new NullPointerException(rank + ", " + suit);
- this.rank = rank;
- this.suit = suit;
- }
-
- public Rank rank() { return rank; }
- public Suit suit() { return suit; }
-
- public String toString() { return rank + " of " + suit; }
-
- public int compareTo(Object o) {
- Card c = (Card)o;
- int rankCompare = rank.compareTo(c.rank);
- return rankCompare != 0 ? rankCompare : suit.compareTo(c.suit);
- }
-
- private static List sortedDeck = new ArrayList(52);
- /* BROKEN IN PROTOTYPE 2.0 */
- static {
- for (Rank rank : Rank.VALUES)
- for (Suit suit : Suit.VALUES)
- sortedDeck.add(new Card(rank, suit));
- }
- /* */
- // Returns a shuffled deck
- public static List newDeck() {
- List result = new ArrayList(sortedDeck);
- Collections.shuffle(result);
- return result;
- }
- }
- // sophisticated example:
- public static abstract enum Operation {
- plus {
- double eval(double x, double y) { return x + y; }
- },
- minus {
- double eval(double x, double y) { return x - y; }
- },
- times {
- double eval(double x, double y) { return x * y; }
- },
- divided_by {
- double eval(double x, double y) { return x / y; }
- };
-
- // Perform arithmetic operation represented by this constant
- abstract double eval(double x, double y);
-
- public static void main(String args[]) {
- double x = Double.parseDouble(args[0]);
- double y = Double.parseDouble(args[1]);
-
- for (Operation op : VALUES)
- out.println(x + " " + op + " " + y + " = " + op.eval(x, y));
- }
- }
-}