Javaのコードで何が起こっているのかを理解しようとしていますが、これまで管理していませんでした。これはこのlibraryの一部です。Java - enumとコンストラクタ内の関数/ varablesの問題
私の不思議は
CURRENT_SIM_TIME(Constants.VAR_TIME_STEP), NET_BOUNDARIES(Constants.VAR_NET_BOUNDING_BOX)
に彼らは、コード内で以前に表示されていないと、後に、任意の括弧()
なしCURRENT_SIM_TIME
を使用して1つのコンストラクタがあります。
enum Variable {
CURRENT_SIM_TIME(Constants.VAR_TIME_STEP), NET_BOUNDARIES(
Constants.VAR_NET_BOUNDING_BOX), ;
public final int id;
private Variable(int id) {
this.id = id;
}
}
これは私が話していたコンストラクタ:
SimulationData(DataInputStream dis, DataOutputStream dos) {
super("", Variable.class);
addReadQuery(Variable.CURRENT_SIM_TIME,
new ReadObjectVarQuery.IntegerQ(dis, dos,
Constants.CMD_GET_SIM_VARIABLE, "",
Variable.CURRENT_SIM_TIME.id) {
});
addReadQuery(Variable.NET_BOUNDARIES,
new ReadObjectVarQuery.BoundingBoxQ(dis, dos,
Constants.CMD_GET_SIM_VARIABLE, "",
Variable.NET_BOUNDARIES.id));
this.dis = dis;
this.dos = dos;
}
だから、どのようにこれは可能ですか?列挙型変数内
我々は括弧内の引数でCURRENT_SIM_TIME
とNET_BOUNDARIES
を持って、その後、コンストラクタで、私たちは、引数として括弧なしで、Variable.CURRENT_SIM_TIME
などVariable.NET_BOUNDARIES
でaddReadQuery
を作成します。
これらの機能はありますか?静的変数?それらはコードの他の部分で定義されていて、それらを見つけることができませんか?列挙型の宣言私は本当に今失われています
...
Javaの列挙型では、このような構成が可能です。基本的にはクラスです。https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html – CoolBots