2

いくつかのアプリケーションのソース コードを調べていて、このコードに出くわしましたが、これが何であるかを理解できません。

public enum XStreamUserType {

MES_CONFIG_XSTREAM(MESConstants.MES_CONFIG_XSTREAM_USER, "MES_CONFIG_XSTREAM_USER",    new XStream());

private int userTypeId;

private String userType;

private XStream xStream;

private XStreamUserType(int userTypeId, String userType, XStream xStream) {
    this.userTypeId = userTypeId;
    this.userType = userType;
    this.xStream = xStream;
    switch (this.userTypeId) {
    case MESConstants.MES_CONFIG_XSTREAM_USER:
        loadConfigReader();
        break;
    default:
    }
}

この行はどういう意味ですか?

MES_CONFIG_XSTREAM(MESConstants.MES_CONFIG_XSTREAM_USER, "MES_CONFIG_XSTREAM_USER",    new XStream());
4

5 に答える 5

0

Java enum では、クラスのようにインスタンス変数とコンストラクターを使用することもできます。

ここenum XStreamUserTypeには 3 つのインスタンス変数があります

private int userTypeId;

private String userType;

private XStream xStream;

その間

private XStreamUserType(int userTypeId, String userType, XStream xStream) {
    this.userTypeId = userTypeId;
    this.userType = userType;
    this.xStream = xStream;
    switch (this.userTypeId) {
    case MESConstants.MES_CONFIG_XSTREAM_USER:
        loadConfigReader();
        break;
    default:
    }
}

コンストラクタです。

MES_CONFIG_XSTREAM列挙型変数 (クラスのオブジェクトとして解釈可能) であり、MES_CONFIG_XSTREAM(MESConstants.MES_CONFIG_XSTREAM_USER, "MES_CONFIG_XSTREAM_USER", new XStream());そのインスタンス変数への値で (コンストラクター呼び出しとして) 初期化されます。

于 2013-10-14T09:00:30.950 に答える
0

これは列挙型の要素であり、そのコンストラクターで初期化されています

作者:

private XStreamUserType(int userTypeId, String userType, XStream xStream)

列挙型には要素が 1 つしかありMES_CONFIG_XSTREAMませんが、カンマ区切りのリストでさらに追加できます。

例については、このページを確認してください:列挙型

于 2013-10-14T08:47:59.080 に答える