/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Optional;
import java.util.function.Consumer;
/* Name of the class has to be "Main" only if the class is public. */
class A {
private void setter
(final Number value
) { } private <T> void setter(final Optional<? super T> value) { }
private void setter2(final Optional<Number> value) { }
private <T> void useSetter(final Consumer<Optional<T>> a) { }
private void callMethod() {
useSetter(this::setter); // Error here
useSetter(this::setter2);
}
public static void main
(String [] args
){
}
}
class B {
private void setter
(final Number value
) { } private void setter(final Optional<? super Number> value) { }
private void setter2(final Optional<Number> value) { }
private <T> void useSetter(final Consumer<Optional<T>> a) { }
private void callMethod() {
useSetter(this::setter); // Error here
useSetter(this::setter2);
}
public static void main
(String [] args
){
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuT3B0aW9uYWw7CmltcG9ydCBqYXZhLnV0aWwuZnVuY3Rpb24uQ29uc3VtZXI7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgQSB7CiAgICBwcml2YXRlIHZvaWQgc2V0dGVyKGZpbmFsIE51bWJlciB2YWx1ZSkgeyB9CiAgICBwcml2YXRlIDxUPiB2b2lkIHNldHRlcihmaW5hbCBPcHRpb25hbDw/IHN1cGVyIFQ+IHZhbHVlKSB7IH0KICAgIHByaXZhdGUgdm9pZCBzZXR0ZXIyKGZpbmFsIE9wdGlvbmFsPE51bWJlcj4gdmFsdWUpIHsgfQoKICAgIHByaXZhdGUgPFQ+IHZvaWQgdXNlU2V0dGVyKGZpbmFsIENvbnN1bWVyPE9wdGlvbmFsPFQ+PiBhKSB7IH0KCiAgICBwcml2YXRlIHZvaWQgY2FsbE1ldGhvZCgpIHsKICAgICAgICB1c2VTZXR0ZXIodGhpczo6c2V0dGVyKTsgLy8gRXJyb3IgaGVyZQogICAgICAgIHVzZVNldHRlcih0aGlzOjpzZXR0ZXIyKTsKICAgIH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIFtdIGFyZ3MpewogICAgCQogICAgfQp9CgpjbGFzcyBCIHsKICAgIHByaXZhdGUgdm9pZCBzZXR0ZXIoZmluYWwgTnVtYmVyIHZhbHVlKSB7IH0KICAgIHByaXZhdGUgdm9pZCBzZXR0ZXIoZmluYWwgT3B0aW9uYWw8PyBzdXBlciBOdW1iZXI+IHZhbHVlKSB7IH0KICAgIHByaXZhdGUgdm9pZCBzZXR0ZXIyKGZpbmFsIE9wdGlvbmFsPE51bWJlcj4gdmFsdWUpIHsgfQoKICAgIHByaXZhdGUgPFQ+IHZvaWQgdXNlU2V0dGVyKGZpbmFsIENvbnN1bWVyPE9wdGlvbmFsPFQ+PiBhKSB7IH0KCiAgICBwcml2YXRlIHZvaWQgY2FsbE1ldGhvZCgpIHsKICAgICAgICB1c2VTZXR0ZXIodGhpczo6c2V0dGVyKTsgLy8gRXJyb3IgaGVyZQogICAgICAgIHVzZVNldHRlcih0aGlzOjpzZXR0ZXIyKTsKICAgIH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIFtdIGFyZ3MpewogICAgCQogICAgfQp9