/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.lang.reflect.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
// ArrayList<Integer> list = new ArrayList<Integer>();
// System.out.println(list.getClass());
// System.out.println(list.getClass().getGenericSuperclass());
// System.out.println(((ParameterizedType) list.getClass().getGenericSuperclass()).getActualTypeArguments()[0].getTypeName());
System.
out.
println(new C
<String
>("hello world!").
RESOURCE_TYPE); }
}
class B {}
final class C<T> extends B {
public final Type RESOURCE_TYPE;
public final T value;
C(T value) {
this.value = value;
System.
out.
println(this.
value); this.RESOURCE_TYPE =
(/*(ParameterizedType)*/ getClass().getGenericSuperclass());//.getActualTypeArguments()[0];
System.
out.
println(this.
RESOURCE_TYPE); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJLy8gQXJyYXlMaXN0PEludGVnZXI+IGxpc3QgPSBuZXcgQXJyYXlMaXN0PEludGVnZXI+KCk7CgkJLy8gU3lzdGVtLm91dC5wcmludGxuKGxpc3QuZ2V0Q2xhc3MoKSk7CgkJLy8gU3lzdGVtLm91dC5wcmludGxuKGxpc3QuZ2V0Q2xhc3MoKS5nZXRHZW5lcmljU3VwZXJjbGFzcygpKTsKCQkvLyBTeXN0ZW0ub3V0LnByaW50bG4oKChQYXJhbWV0ZXJpemVkVHlwZSkgbGlzdC5nZXRDbGFzcygpLmdldEdlbmVyaWNTdXBlcmNsYXNzKCkpLmdldEFjdHVhbFR5cGVBcmd1bWVudHMoKVswXS5nZXRUeXBlTmFtZSgpKTsKCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4obmV3IEM8U3RyaW5nPigiaGVsbG8gd29ybGQhIikuUkVTT1VSQ0VfVFlQRSk7Cgl9CgkKfQoKY2xhc3MgQiB7fQpmaW5hbCBjbGFzcyBDPFQ+IGV4dGVuZHMgQiB7CglwdWJsaWMgZmluYWwgVHlwZSBSRVNPVVJDRV9UWVBFOwoJcHVibGljIGZpbmFsIFQgdmFsdWU7CgkKCUMoVCB2YWx1ZSkgewoJCXRoaXMudmFsdWUgPSB2YWx1ZTsKCQlTeXN0ZW0ub3V0LnByaW50bG4odGhpcy52YWx1ZSk7CgkJdGhpcy5SRVNPVVJDRV9UWVBFID0KCQkJKC8qKFBhcmFtZXRlcml6ZWRUeXBlKSovIGdldENsYXNzKCkuZ2V0R2VuZXJpY1N1cGVyY2xhc3MoKSk7Ly8uZ2V0QWN0dWFsVHlwZUFyZ3VtZW50cygpWzBdOwoJCVN5c3RlbS5vdXQucHJpbnRsbih0aGlzLlJFU09VUkNFX1RZUEUpOwoJfQp9