/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class GenericClass< T> {
}
class RegisterHandler< T> {
public void register( Class< T> klazz ) {
// do something
}
}
class GenericClassRegisterHandler extends RegisterHandler< GenericClass<?>> {
}
class Ideone
{
{
// your code goes here
}
public static void registerAll( ) {
// ...
new GenericClassRegisterHandler( ) .register ( GenericClass.class ) ;
// ...
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KICAgIGNsYXNzIEdlbmVyaWNDbGFzczxUPiB7CiAgICB9CgogICAgY2xhc3MgUmVnaXN0ZXJIYW5kbGVyPFQ+IHsKICAgICAgICBwdWJsaWMgdm9pZCByZWdpc3RlciggQ2xhc3M8VD4ga2xhenogKSB7CiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZwogICAgICAgIH0KICAgIH0KCiAgICBjbGFzcyBHZW5lcmljQ2xhc3NSZWdpc3RlckhhbmRsZXIgZXh0ZW5kcyBSZWdpc3RlckhhbmRsZXI8R2VuZXJpY0NsYXNzPD8+PiB7CiAgICB9CgoKY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJBbGwoKSB7CiAgICAgICAgLy8gLi4uCiAgICAgICAgbmV3IEdlbmVyaWNDbGFzc1JlZ2lzdGVySGFuZGxlcigpLnJlZ2lzdGVyKCBHZW5lcmljQ2xhc3MuY2xhc3MgKTsKICAgICAgICAvLyAuLi4KICAgIH0KfQ==
compilation info
Main.java:30: error: method register in class RegisterHandler<T> cannot be applied to given types;
new GenericClassRegisterHandler().register( GenericClass.class );
^
required: Class<GenericClass<?>>
found: Class<GenericClass>
reason: actual argument Class<GenericClass> cannot be converted to Class<GenericClass<?>> by method invocation conversion
where T is a type-variable:
T extends Object declared in class RegisterHandler
1 error
stdout