Sve*_*nge 11
在Xtend中,内部类使用美元符号('$')取消引用,静态成员使用双冒号('::')进行访问.
HelloAndroid活动代码如下所示:
class XtendActivity extends Activity {
override void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R$layout::main);
}
}
Run Code Online (Sandbox Code Playgroud)
尝试了同样的事情,我可以确认启用Xtend Nature并添加三个Xtend库(前面提到过'org.eclipse.xtext.xtend2.lib','org.eclipse.xtext.xbase.lib'和'com .google.inject')到项目的库,至少可以编译Xtend代码.但是,我也遇到了R类的问题.
仔细观察,看起来R类的问题不在于它位于不同的目录中.使用其他名称将文件复制到主源目录不会更改任何内容.相反,看起来问题是R类是一个静态的最终类,包含几个静态的最终子类.如果我创建一个简单的普通Java包装类,它在普通方法中包含对R.layout.main(例如)的引用,并从我的Xtend代码中调用它,那么它确实接受它并愉快地编译.
之后,我遇到的下一个问题是Android编译器在'org.eclipse.xtext.xtend2.lib','org.eclipse.xtext.xbase.lib'和'中抱怨重复的about.html和plugin.properties文件com.google.inject".通过从三个.jar文件中的两个中删除这些文件,这相对容易修复.我不确定它以后是否会破坏,但现在至少我在Android模拟器上运行了一段Xtend代码.
| 归档时间: |
|
| 查看次数: |
3805 次 |
| 最近记录: |