【发布时间】:2016-02-07 20:30:59
【问题描述】:
我正在将大量代码从 PHP 移植到 Java(一个 Android 应用程序)。一切都已完成,但我在这里遇到了问题,
我得到了这个 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");
}
我将这些问题描述为 cmets。欢迎所有想法。
请注意,const 包含 1 和 2 作为构造函数中的值,而且还获得了分配的数组。所以请举个例子而不是重复。
【问题讨论】:
-
如果您在 cmets 中描述的是问题,那么问题不止一个,而是更多。如果是 const 问题,那么上面 swidmann 的评论会回答它。
-
这是非常直接的东西,错误信息有什么不清楚的地方?您不能有两个具有相同名称的变量。一旦我解决了这个问题,你的代码就会编译。不确定您在说什么“地图不能包含布尔值”。
-
您需要阅读 Java 基础知识。否则你会面临很多这样的错误。