相关疑难解决方法(0)

Java中的标记接口?

我被告知Java中的Marker接口是一个空接口,用于向编译器或JVM发出信号,表明必须以特殊方式处理实现此接口的类的对象,如序列化,克隆等.

但最近我了解到它实际上与编译器或JVM无关.例如,在的情况下,Serializable接口的方法writeObject(Object)ObjectOutputStream不喜欢的东西instanceOf Serializable,以检测类实现是否Serializable与抛出NotSerializableException相应.一切都在代码中处理,这似乎是一个设计模式,所以我认为我们可以定义自己的标记接口.

现在我怀疑了:

  1. 上面提到的标记接口的定义在第一点是错误的吗?那么我们如何定义Marker接口呢?

  2. 而不是使用instanceOf运算符为什么不能使方法类似于writeObject(Serializable)有一个编译时类型检查而不是运行时?

  3. 注释如何比标记接口更好?

java design-patterns marker-interfaces

129
推荐指数
5
解决办法
9万
查看次数

我可以拥有一个空的Java类吗?

我正在创建一个基于网格的游戏.

我需要实现一组在网格内随机定位的障碍.我创建了一个抽象类ALifeForm,它包含网格中每个项目的常用方法.显然,抽象类无法初始化,所以我打算创建一个新类AObstacle,它将扩展ALifeForm.

唯一的问题是,我的AObstacle班级不专业.它需要的所有方法都在其中ALifeForm.

我可以空课吗?这是不好的编程习惯吗?如果是这样,我可以实现什么呢?

java class abstract

2
推荐指数
1
解决办法
6762
查看次数