相当于Java中PHP中的const
我正在将大量代码从PHP移植到Android应用程序的Java中。一切都完成了,但我在这里面临一个问题 我得到了以下PHP代码:相当于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(
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基础知识。否则你会面临很多这样的错误。谢谢!我从来不知道我也可以使用没有参数的地图!没问题,很乐意帮忙: