Oi,
apenas quero por este exemplo para mostrar como fazer uma espécie de instanceof, mas aonde os valores a serem comparados entram como parâmetros.
Eu tentei em primeiro lugar com o instanceof, mas tenho erros de compilação. Esta é a solução conseguida por mim.
Quem tiver mais sugestões, ponha aqui.
public class Instantiation
{
public void checkInstantiation(Class clazz, Object toCheck)
{
try
{
System.out.println("1 --> " + Male.class.getCanonicalName());
System.out.println("2 --> " + clazz.toString());
// System.out.println("3 --> " + clazz.getCanonicalName());
System.out.println("4 --> " + Class.forName(Male.class.getCanonicalName()));
// System.out.println("5 --> " + clazz.getCanonicalName());
if(Class.forName(clazz.getCanonicalName()).isInstance(toCheck))
{
System.out.println(clazz.toString() + " is instance of " + Male.class.toString());
} else
{
System.out.println("Not found");
}
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (RuntimeException e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
Male male = new Male();
Instantiation inst = new Instantiation();
inst.checkInstantiation(male.getClass(), new Male());
}
}
Obrigado,
Pedro