theAnonymous
theAnonymous

Reputation: 1804

How to dynamically cast something?

I want to dynamically cast something by calling something like this:

Object genericObject = new MyObject();
MyObject myObject = getObject(genericObject, MyObject.class);

public static final T getObject(Object object, Class<T> clazz){
    if(isInstance(object, clazz)){
        return object;
    }
    return null;
}

How to fix the getObject() method so that it works?

Upvotes: 1

Views: 155

Answers (1)

Mureinik
Mureinik

Reputation: 311163

You can use Class#cast:

public static final <T> T getObject(Object object, Class<T> clazz) {
    if(clazz.isInstance(object)) {
        return clazz.cast(object);
    }
    return null;
}

Upvotes: 2

Related Questions