import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
static class UserControl {
public void foo
() { System.
out.
println("UserControl"); } }
static class ExtraUserControl extends UserControl {
@Override
public void foo
() { System.
out.
println("ExtraUserControl"); } }
private static Map<Class<? extends UserControl>, UserControl> viewsDictionary = new HashMap<>();
private static void register(Class<? extends UserControl> clazz) throws ReflectiveOperationException {
viewsDictionary.put(clazz, clazz.newInstance());
}
register(UserControl.class);
register(ExtraUserControl.class);
viewsDictionary.get(UserControl.class).foo();
viewsDictionary.get(ExtraUserControl.class).foo();
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUKewoJc3RhdGljIGNsYXNzIFVzZXJDb250cm9sIHsKCQlwdWJsaWMgdm9pZCBmb28oKSB7IFN5c3RlbS5vdXQucHJpbnRsbigiVXNlckNvbnRyb2wiKTsgfQoJfQoJCglzdGF0aWMgY2xhc3MgRXh0cmFVc2VyQ29udHJvbCBleHRlbmRzIFVzZXJDb250cm9sIHsKCQlAT3ZlcnJpZGUKCQlwdWJsaWMgdm9pZCBmb28oKSB7IFN5c3RlbS5vdXQucHJpbnRsbigiRXh0cmFVc2VyQ29udHJvbCIpOyB9Cgl9CgkKCXByaXZhdGUgc3RhdGljIE1hcDxDbGFzczw/IGV4dGVuZHMgVXNlckNvbnRyb2w+LCBVc2VyQ29udHJvbD4gdmlld3NEaWN0aW9uYXJ5ID0gbmV3IEhhc2hNYXA8PigpOwoJCglwcml2YXRlIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKENsYXNzPD8gZXh0ZW5kcyBVc2VyQ29udHJvbD4gY2xhenopIHRocm93cyBSZWZsZWN0aXZlT3BlcmF0aW9uRXhjZXB0aW9uIHsKCQl2aWV3c0RpY3Rpb25hcnkucHV0KGNsYXp6LCBjbGF6ei5uZXdJbnN0YW5jZSgpKTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsKCQlyZWdpc3RlcihVc2VyQ29udHJvbC5jbGFzcyk7CgkJcmVnaXN0ZXIoRXh0cmFVc2VyQ29udHJvbC5jbGFzcyk7CgkJCgkJdmlld3NEaWN0aW9uYXJ5LmdldChVc2VyQ29udHJvbC5jbGFzcykuZm9vKCk7CgkJdmlld3NEaWN0aW9uYXJ5LmdldChFeHRyYVVzZXJDb250cm9sLmNsYXNzKS5mb28oKTsKCX0KfQ==