SimpleJavaEngine/src/main/java/speiger/src/coreengine/rendering/newGui/components/base/ICastable.java

19 lines
428 B
Java

package speiger.src.coreengine.rendering.newGui.components.base;
public interface ICastable
{
@SuppressWarnings("unchecked")
public default <T> T cast() {
return (T)this;
}
@SuppressWarnings("unchecked")
public default <T> T cast(Class<T> clz) {
return (T)this;
}
@SuppressWarnings("unchecked")
public default <T> T tryCast(Class<T> clz) {
return clz.isInstance(this) ? (T)this : null;
}
}