首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中有没有类似于C#的'AS‘关键字的关键字

Java中有没有类似于C#的'AS‘关键字的关键字
EN

Stack Overflow用户
提问于 2011-06-03 04:06:36
回答 3查看 13.9K关注 0票数 22

正如我们所知,C#提供了一个As关键字,该关键字自动检查对象是否属于某个类型,如果是,则将其强制转换为所需的类型,否则将返回null。

public class User { }
Object obj = someObj;
User user = obj As User;

在上面的例子中,对象obj可以是User类型,也可以是其他类型。用户将获得一个类型为user或为空的对象。这是因为C#的As关键字首先执行检查,如果可能,然后将对象转换为结果类型。

那么在Java中有没有与C#的AS关键字等价的关键字呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-03 04:11:51

您可以创建帮助器方法

public static T as(Object o, Class<T> tClass) {
     return tClass.isInstance(o) ? (T) o : null;
}

User user = as(obj, User.class);
票数 26
EN

Stack Overflow用户

发布于 2011-06-03 04:07:52

不,如果匹配,您可以检查instanceof,然后进行强制转换

User user = null;
if(obj instanceof User) {
  user = (User) obj;
}
票数 21
EN

Stack Overflow用户

发布于 2011-06-03 05:11:35

没有关键字,但为了完整,我会给你一个等价的1行代码:

User user = obj instanceof User ? (User) obj : null;

(我不确定,您可能不必进行显式强制转换。)

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6219773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档