首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅生成Xtext Xbase JvmTypesBuilder最终参数

仅生成Xtext Xbase JvmTypesBuilder最终参数
EN

Stack Overflow用户
提问于 2013-01-18 16:58:17
回答 1查看 590关注 0票数 1

我正在尝试使用Xtend Xbase API生成一个简单的Java方法。这是Xtend代码。

代码语言:javascript
复制
        var jvmMethod = element.toMethod("fromSap",element.newTypeRef(element.dtoFullName))[
    var jvmTypeReference= fromSap.sapType;
    var param = toParameter("sapOb",jvmTypeReference)
    parameters+=param
    body = ['''....''')]

以下是生成的代码:

代码语言:javascript
复制
  public class DTOTest {
     public DTOTest fromSap(final String sapOb) {
    DTOTest result = new DTOTest();
    return result;   
  }
}

我试着补充说:

代码语言:javascript
复制
param.setFinal(false);

但我有

代码语言:javascript
复制
This expression is not allowed in this context, since it doesn't cause any side effects.

在编译时

戴维德

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-18 20:06:35

在方法中包含的表达式的链接/范围中,方法参数被认为是最终的。如果参数不是final,那么它们都不能在lambda表达式中使用。不幸的是,对于参数,在反射API (java.lang.reflect)中没有‘最终’的方法。因此,不能公开任何属性'isFinal‘,但我们只需在内部将它们标记为此类。

错误消息‘此表达式在此上下文中是不允许的,因为它不会引起任何副作用。’是有误导性的。它可能掩盖了真正的错误,即没有这样的方法JvmFormalParameter.setFinal(boolean)

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

https://stackoverflow.com/questions/14395395

复制
相关文章

相似问题

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