Default Method
Default Method
interface I {
T foo();
static boolean batz(I x) {
return x.foo() != null;
}
default String name() { if (batz(this))
return foo().toString();
return "Sorry!";
}}
public class B implements I {
private String story; public B(String s) {
story = s;
}
public String foo() {
return story;
}}
class Range {
private double max;
private double min;
public double diff() {
return max-min;
}
public Range() {
max = -Double.MAX_VALUE;
min = Double.MAX_VALUE;
} public void add(double x) {
if (x > max) max = x;
if (x < min) min = x;
}
public void join(Range r) {
if (max < r.max) max = r.max;
if (min > r.min) min = r.min; } }
4. class RangeTest
class RangeTest {
public static void main(String[] a) throws IOException {
BiConsumer acc = (Range r, Double d) -> r.add(d);
BiConsumer comb = (Range r, Range r1) -> r.join(r1);
Stream ss = Files.lines(Path.of(a[0]));
double diff = 0.0;
double max = ss.mapToDouble(p ->
Double.parseDouble(p)).filter(number -> number > -42.0 || number <
42.0).max().getAsDouble();
double min = ss.mapToDouble(p ->
Double.parseDouble(p)).filter(number -> number > -42.0 || number <
42.0).min().getAsDouble();
diff = max - min; System.out.println("The range of values is \t"+diff);
}}