Java中有没有类似于';作为';C#的关键字
本文关键字:关键字 作为 有没有 Java 类似于 | 更新日期: 2023-09-27 17:58:21
正如我们所知,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关键字等效的关键字?
您可以创建一个辅助方法
public static T as(Object o, Class<T> tClass) {
return tClass.isInstance(o) ? (T) o : null;
}
User user = as(obj, User.class);
否,您可以使用instanceof
进行检查,然后强制转换它是否匹配
User user = null;
if(obj instanceof User) {
user = (User) obj;
}
没有关键字,但为了完整起见,我给你一个等价的1行:
User user = obj instanceof User ? (User) obj : null;
(我不确定,您可能不需要显式强制转换。)