-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUsage.java
More file actions
30 lines (22 loc) · 872 Bytes
/
Usage.java
File metadata and controls
30 lines (22 loc) · 872 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package Item38;
import Item38.java.ExtendedOperation;
import Item38.java.Operation;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
public class Usage {
public static void main(String[] args) {
double x = 15456456.5;
double y = 15456456.5;
test(ExtendedOperation.class, x, y);
test(Arrays.asList(ExtendedOperation.values()), x, y);
}
private static <T extends Enum<T> & Operation> void test(Class<T> opEnumType, double x, double y) {
for (Operation op : opEnumType.getEnumConstants())
System.out.printf("%f %s %f = %f%n", x, op, y, op.apply(x, y));
}
private static void test(Collection<? extends Operation> opSet, double x, double y) {
for (Operation op : opSet)
System.out.printf("%f %s %f = %f%n", x, op, y, op.apply(x, y));
}
}