Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
相当于Java中PHP中的const_Java_Php_Android - Fatal编程技术网

相当于Java中PHP中的const

相当于Java中PHP中的const,java,php,android,Java,Php,Android,我正在将大量代码从PHP移植到Android应用程序的Java中。一切都完成了,但我在这里面临一个问题 我得到了以下PHP代码: class SenderKeyGroupData{ const MESSAGE = 1; const SENDER_KEY = 2; /* @var array Field descriptors */ protected static $fields = array( self::MESSAGE => array(

我正在将大量代码从PHP移植到Android应用程序的Java中。一切都完成了,但我在这里面临一个问题

我得到了以下PHP代码:

class SenderKeyGroupData{
  const MESSAGE = 1;
  const SENDER_KEY = 2;
  /* @var array Field descriptors */
  protected static $fields = array(
      self::MESSAGE => array(
        'name' => 'message',
        'required' => false,
        'type' => 7,
      ),
      self::SENDER_KEY => array(
          'name' => 'sender_key',
          'required' => false,
          'type' => "SenderKeyGroupMessage",
      ),
  );
但是我想要Java中的代码,例如,我创建了以下Java代码:

class SenderKeyGroupData {
    int MESSAGE = 1; // Must be const
    int SENDER_KEY = 2; // Must be const

    // These two Maps must be in the $fields array?
    Map MESSAGE = new HashMap(); //Duplicate conflict here
    MESSAGE.put("name", "message");
    MESSAGE.put("required", false); // Map can't contain booleans?
    MESSAGE.put("type", "7");

    Map SENDER_KEY = new HashMap(); //Duplicate conflict here
    SENDER_KEY.put("name", "sender_key");
    SENDER_KEY.put("required", false); // Map can't contain booleans?
    SENDER_KEY.put("type", "SenderKeyGroupMessage");
}
我把这些问题描述为评论。欢迎提出任何意见


请注意,const在构造函数中包含1和2作为值,但也会分配一个数组。因此,请给出一个示例,而不是将其作为副本。

我真的不知道如何以及在何处访问这些变量,也不知道您打算如何使用此类,但这至少可以编译:

class SenderKeyGroupData {

    public static final int MESSAGE = 1;    // final keyword means it cannot be changed
    public static final int SENDER_KEY = 2; // public keyword means it can be accessed by anyone

    static Map MESSAGE_MAP = new HashMap(); // static means this is shared between all instances
    static {
        MESSAGE_MAP.put("name", "message");
        MESSAGE_MAP.put("required", false);
        MESSAGE_MAP.put("type", "7");
    }

    static Map SENDER_KEY_MAP = new HashMap();
    static {
        SENDER_KEY_MAP.put("name", "sender_key");
        SENDER_KEY_MAP.put("required", false);
        SENDER_KEY_MAP.put("type", "SenderKeyGroupMessage");
    }
}

如果你在评论中描述的是问题,那么问题不是一个,而是更多。如果是const问题,那么swidmann在上面的评论回答了这个问题。这是非常直截了当的东西,关于错误消息有什么不清楚的?不能有两个同名的变量。一旦我解决了这个问题,您的代码就会编译。不确定您所说的地图不能包含布尔值。您需要阅读Java基础知识。否则你会面临很多这样的错误。谢谢!我从来不知道我也可以使用没有参数的地图!没问题,很乐意帮忙: