opertor在Java中_如何在Java中模拟C#as-operator

你可以编写一个像这样的静态工具方法。我不认为这是非常可读的,但它是你想要做的最好的近似。如果你使用静态导入,它的可读性不会太差。

package com.stackoverflow.examples;

public class Utils {

@SuppressWarnings("unchecked")

public static T safeCast(Object obj, Class type) {

if (type.isInstance(obj)) {

return (T) obj;

}

return null;

}

}这是一个测试案例,演示了它是如何工作的(并且确实起作用)。

package com.stackoverflow.examples;

import static com.stackoverflow.examples.Utils.safeCast;

import static junit.framework.Assert.assertNotNull;

import static junit.framework.Assert.assertNull;

import org.junit.Test;

public class UtilsTest {

@Test

public void happyPath() {

Object x = "abc";

String y = safeCast(x, String.class);

assertNotNull(y);

}

@Test

public void castToSubclassShouldFail() {

Object x = new Object();

String y = safeCast(x, String.class);

assertNull(y);

}

@Test

public void castToUnrelatedTypeShouldFail() {

Object x = "abc";

Integer y = safeCast(x, Integer.class);

assertNull(y);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值