java - How to compare two classes -


i try create factory, here's code:

public class myfactory {     public static <t> mybase create(class<t> _c) {         if (_c.getclass().equals(derived1.class)) // (1)             return createnewderived1();          return null;     } }  // caller myfactory.create(derived1.class); 

it compiles warning @ line (1):

error

'equals()' between objects of inconvertible types 'class<derived1>'  , 'class<capture of ? extends class>' <br>reports calls .equals()  target , argument of incompatible types. while such  call might theoretically useful, represents bug. 

and in runtime if statement fails reason. how can intended behaviour?

public class myfactory {     public static <t> mybase create(class<t> _c) {         return ( _c == derived1.class ) ? createnewderived1() : null;     } }  // caller myfactory.create(derived1.class); 

see compare class objects further info.

fiy, "real" class object references have class<myclass> type signatures (before erasure), while class returned .class class is, afair, rawtype class on environments , class<capture of ?>-ish on others.


Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -