首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Java到X10的转换

从Java到X10的转换
EN

Stack Overflow用户
提问于 2012-03-12 06:02:49
回答 2查看 372关注 0票数 3

我正在将一个Java程序翻译成X10,我遇到了一些问题,我想知道是否有人能帮我翻译。

下面是我想要翻译的一段Java代码:

代码语言:javascript
复制
ArrayList<Posting>[] list = new ArrayList[this.V];
for (int k=0; k<this.V; ++k) {
    list[k] = new ArrayList<Posting>();
}

下面是我在X10中所做的事情:

代码语言:javascript
复制
var list:ArrayList[Posting]=new ArrayList[Posting](this.V);
for (var k:int=0; k<this.V; ++k) {
    list(k)=new ArrayList[Posting]();
}

生成一堆错误语句的代码行是这样的:

代码语言:javascript
复制
list(k)=new ArrayList[Posting]();

对于我做错了什么,有什么建议或者解释吗?

EN

回答 2

Stack Overflow用户

发布于 2013-04-18 14:48:27

同意真实的观点。您需要将list定义为类似Rail[ArrayList[Posting]]的内容:

代码语言:javascript
复制
var list:Rail[ArrayList[Posting]]=new Rail[ArrayList[Posting]](this.V);

此外,由于X10支持不可变变量的类型推断,因此使用val而不是var并完全省略类型声明通常更好:

代码语言:javascript
复制
val list = new Rail[ArrayList[Posting]](this.V);
票数 1
EN

Stack Overflow用户

发布于 2014-02-11 21:05:39

以下是应该为您工作的代码:

代码语言:javascript
复制
val list = new Rail[ArrayList[Posting]](this.V);
for (k in 1..(this.V)) {
  list(k)=new ArrayList[Posting]();
}

你也可以做

代码语言:javascript
复制
val list = new Rail[ArrayList[Posting]](this.V, (Long)=>new ArrayList[Temp]());

即使用单个语句来创建已初始化的数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9659322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档