19 lines
428 B
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;
|
|
}
|
|
} |