我的一位朋友正在编写一些Java代码,我们就他的问题交换了一些想法(他使用了相当混乱的框架)。
他的一个问题是通过在接口内的私有类中放置一个枚举来解决的。当他告诉我这件事时我很头疼。他说这是一种在界面中包含枚举的方式。我一直认为接口专门用于暴露界面,仅此而已。
为什么可以在接口中放置类,以及它可以用于什么目的?
答案 0 :(得分:3)
我们可以在接口内部使用类。其用法的一个例子可以是:
public interface Input
{
public static class KeyEvent {
public static final int KEY_DOWN = 0;
public static final int KEY_UP = 1;
public int type;
public int keyCode;
public char keyChar;
}
public static class TouchEvent {
public static final int TOUCH_DOWN = 0;
public static final int TOUCH_UP = 1;
public static final int TOUCH_DRAGGED = 2;
public int type;
public int x, y;
public int pointer;
}
public boolean isKeyPressed(int keyCode);
public boolean isTouchDown(int pointer);
public int getTouchX(int pointer);
public int getTouchY(int pointer);
public float getAccelX();
public float getAccelY();
public float getAccelZ();
public List<KeyEvent> getKeyEvents();
public List<TouchEvent> getTouchEvents();
}
这里的代码有两个嵌套类,用于封装有关事件对象的信息,这些事件对象稍后在方法定义中使用,如getKeyEvents()。将它们放在Input界面内可以提高内聚力。
答案 1 :(得分:0)