我们知道C#提供了一个AS关键字,它自动检查Object是否属于某个类型,如果是,则将其转换为所需类型,否则返回null。
public class User
{
}
....
Object obj = someObj;
User user = obj As User;
...
在上面的示例中, Object obj可以是User类型或其他类型。 用户将获得User类型的对象或null。 这是因为C#的As关键字首先执行检查,如果可能,然后执行将对象转换为结果类型。
Java中的任何关键字都等同于C#的AS关键字吗?
答案 0 :(得分:24)
您可以创建辅助方法
public static T as(Object o, Class<T> tClass) {
return tClass.isInstance(o) ? (T) o : null;
}
User user = as(obj, User.class);
答案 1 :(得分:20)
不,你可以查看instanceof
,然后选择匹配
User user = null;
if(obj instanceof User) {
user = (User) obj;
}
答案 2 :(得分:11)
没有关键字,但为了完整性,我会给你1个班次的等价物:
User user = obj instanceof User ? (User) obj : null;
(你可能不必有明确的演员表,我不确定。)