判别Class是否属于Interface

本人在最近的项目中遇到一个问题,需要往一个接口方法中增加参数,但由于项目已经稳定运行了很长一段时间,不可能去改造现有方法,只能通过新增接口的方式去解决。
对于新增的接口,现有程序就要判断类实例究竟属于哪个接口,然后进行调用,关键点是通过关键字 instanceof 进行判断。下面是一些测试代码,请大家参考。

-示例代码:

IFaceA.java

public class ClassB implements IFaceB {
    @Override
    public String execute(String arg0) {
        System.out.println("execute with args.........");
        return "args";
    }
}

IFaceB.java

public interface IFaceB {
    public String execute(String arg0);
}

ClassA.java

public class ClassA implements IFaceA {
    @Override
    public void execute() {
        System.out.println("execute........");
    }
}

ClassB.java

public class ClassB implements IFaceB {
    @Override
    public String execute(String arg0) {
        System.out.println("execute with args.........");
        return "args";
    }
}

TestMain.java

public class TestMain {
    public static void main(String[] args) throws Exception {
        String clsnameA="com.gzsolartech.smartforms.utils.ClassA";
        Class<?> clzA = Class.forName(clsnameA);
        Object objA=clzA.newInstance();
        String clsnameB="com.gzsolartech.smartforms.utils.ClassB";
        Class<?> clzB = Class.forName(clsnameB);
        Object objB=clzB.newInstance();

        System.out.println(objA instanceof IFaceA);
        System.out.println(objA instanceof IFaceB);
        System.out.println(objB instanceof IFaceA);
    }
}
  • 输出结果
    true
    false
    false
    true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值