as运算符用于执行兼容类型之间的转换

时间:2016-05-24 13:18:48

标签: java

Java中是否有as operator的实现? 我正在寻找一些像在一些共享库中的代码片段一样简单的东西。

public static <T> T as(Class<T> clazz, Object object) {
    if (object == null)
        return null;
    if (clazz.isAssignableFrom(object.getClass()))
        return (T) object;
    return null;
}

我可以使用的东西,如

public boolean equals(Object obj) {
    Peer peer = as(Peer.class, obj);
    if (peer == null) return false;
    ...
}

1 个答案:

答案 0 :(得分:3)

不,Java中的等价习惯是

public boolean equals(Object obj) {
    if(!obj instanceof Peer)
        return false;
    Peer peer = (Peer)obj;
    ...
}