1
我對Java相當陌生,並對此處的最佳實踐感到疑惑。使用類註釋或靜態屬性
假設我有一個泛型類(例如Car
)和一些共享某些屬性的繼承類(Honda
,Subaru
)。
public abstract class Car {
public static short id;
}
public class Honda extends Car {
public static final short id = 1;
}
public class Subaru extends Car {
public static final short id = 2;
}
這是不是違背了DRY原則?那麼使用註釋呢?
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Id {
public short value();
}
public abstract class Car {
}
@Id(1)
public class Honda extends Car {
}
@Id(2)
public class Subaru extends Car {
}
既不是你的'Car'是通用的,也不是你的其他類繼承它。 –
你的課程已經有一個ID。他們被稱爲「汽車」,「本田」和「斯巴魯」。這些名稱可以使用反射來檢索。您可能需要的唯一附加ID是'serialVersionUID',但是這個ID是專門針對類實現的,因此不會違反DRY原則。 –
請注意,您不能繼承「靜態」成員(字段和方法)。 (好吧,在之前的評論中,「你可能需要的唯一附加ID」就是誇大了它) –