当前位置:  开发笔记 > 编程语言 > 正文

界面问题

如何解决《界面问题》经验,为你挑选了1个好方法。

假设我有MyInterface接口和2个实现MyInterface的类A,B.
我声明了两个对象:MyInterface a = new A()MyInterface b = new B().
当我尝试传递给函数 - 函数时,doSomething(A a){}我收到一个错误.

这是我的代码:

public interface MyInterface {}

public class A implements MyInterface{}

public class B implements MyInterface{}

public class Tester {

    public static void main(String[] args){
        MyInterface a = new A();
        MyInterface b = new B();
        test(b);
    }

    public static void test(A a){
        System.out.println("A");
    }

    public static void test(B b){
        System.out.println("B");
    }

}

我的问题是,我从一些组件接口,可以是各种类,我需要为每个类编写函数.
所以一种方法是获取接口并检查它是哪种类型.(A的例子)

我想知道其他人如何处理这个问题?

谢谢



1> marcj..:

你能不能只在每个类实现的接口上有一个方法?或者你没有控制界面?

这将提供多态性并避免定义任何外部方法的需要.我相信这是一个接口的意图,它允许客户端以非特定类型的方式处理实现它的所有类.

如果您无法添加到界面,那么最好使用适当的方法引入第二个界面.如果您无法编辑接口或类,则需要一个以接口作为参数的方法,然后检查具体类.然而,这应该是最后的手段,而是颠覆了接口的使用,并将方法与所有实现联系起来.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有