import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
class Ideone {
public static void main
(String[] args
) { final AtoBConverter converter = new AtoBConverter();
final List<B> bs = Stream.<A>of(new B(), new B(), new B(), new A())
.map(converter::convert)
.collect(Collectors.toList());
}
}
class A {}
class B extends A {
private static int globalValue = 5;
private int value;
public B() {
value = globalValue--;
}
public B(final int value) {
this.value = value;
}
public int getValue() {
return value;
}
@Override
return String.
format("B={value: %s}", getValue
()); }
}
class AtoBConverter {
public B convert(final A a) {
if (a instanceof B) {
return (B) a;
}
}
}
aW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOwppbXBvcnQgamF2YS51dGlsLkxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLlN0cmVhbTsKCmNsYXNzIElkZW9uZSB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgewoJCWZpbmFsIEF0b0JDb252ZXJ0ZXIgY29udmVydGVyID0gbmV3IEF0b0JDb252ZXJ0ZXIoKTsKCQlmaW5hbCBMaXN0PEI+IGJzID0gU3RyZWFtLjxBPm9mKG5ldyBCKCksIG5ldyBCKCksIG5ldyBCKCksIG5ldyBBKCkpCgkJCS5tYXAoY29udmVydGVyOjpjb252ZXJ0KQoJCQkuc29ydGVkKENvbXBhcmF0b3IuY29tcGFyaW5nSW50KEI6OmdldFZhbHVlKSkKCQkJLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKGJzKTsKCX0KfQoKY2xhc3MgQSB7fQoKY2xhc3MgQiBleHRlbmRzIEEgewoJcHJpdmF0ZSBzdGF0aWMgaW50IGdsb2JhbFZhbHVlID0gNTsKCglwcml2YXRlIGludCB2YWx1ZTsKCQoJcHVibGljIEIoKSB7CgkJdmFsdWUgPSBnbG9iYWxWYWx1ZS0tOwoJfQoJCglwdWJsaWMgQihmaW5hbCBpbnQgdmFsdWUpIHsKCQl0aGlzLnZhbHVlID0gdmFsdWU7Cgl9CgkKCXB1YmxpYyBpbnQgZ2V0VmFsdWUoKSB7CgkJcmV0dXJuIHZhbHVlOwoJfQoJCglAT3ZlcnJpZGUKCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CgkJcmV0dXJuIFN0cmluZy5mb3JtYXQoIkI9e3ZhbHVlOiAlc30iLCBnZXRWYWx1ZSgpKTsKCX0KfQoKY2xhc3MgQXRvQkNvbnZlcnRlciB7CglwdWJsaWMgQiBjb252ZXJ0KGZpbmFsIEEgYSkgewoJCWlmIChhIGluc3RhbmNlb2YgQikgewoJCQlyZXR1cm4gKEIpIGE7CgkJfQoJCXJldHVybiBuZXcgQihJbnRlZ2VyLk1JTl9WQUxVRSk7Cgl9Cn0=