public class OnlyUncheckedWarningCastWithInnerClasses { public abstract class Mapper extends UnaryOperator { } public abstract class UnaryOperator implements Function {} void test(OnlyUncheckedWarningCastWithInnerClasses.UnaryOperator op) { OnlyUncheckedWarningCastWithInnerClasses.Mapper op1 = (OnlyUncheckedWarningCastWithInnerClasses.Mapper) op; } } interface Function { R apply(T t); }