相当于 Java 中的 C# 关键字 'as'
在Java中,是否可以尝试强制转换,并在强制转换失败时返回?null
public static <T> T as(Class<T> t, Object o) {
return t.isInstance(o) ? t.cast(o) : null;
}
用法:
MyType a = as(MyType.class, new MyType());
// 'a' is not null
MyType b = as(MyType.class, "");
// b is null
您可以使用关键字来确定是否可以正确转换。instanceof
return obj instanceof String?(String)obj: null;
当然,它可以被泛型化并制作成函数,但我认为问题是Java必须实现此目的。