首页 > 解决方案 > 如何使用 Java 注释设置双精度

问题描述

我正在编写一个用于 Tridiums Niagara Framework 4.3 版的自定义模块,我尝试设置的 defaultValue 给出以下错误:

“类”或“接口”预期错误。

我尝试了几种不同的方法来设置它,但错误仍然存​​在。我尝试从头开始并得到相同的错误。

package com.lgelectronics.lge;

import javax.baja.nre.annotations.Facet;
import javax.baja.nre.annotations.NiagaraProperty;
import javax.baja.nre.annotations.NiagaraType;
import javax.baja.sys.*;

@NiagaraType

@NiagaraProperty
    (
            name = "Schedule",
            type = "Baja:Boolean",
            flags = Flags.SUMMARY,
            defaultValue = "False"
    )
@NiagaraProperty
    (
            name = "OccupiedCoolingSetPoint",
            type = "Baja:Double",
            flags = Flags.SUMMARY,
            facets=
                    {
@Facet(name = "BFacets.UNITS", value = "BUnit.getUnit(\"fahrenheit\")"),
@Facet(name = "BFacets.PRECISION", value = "BInteger.make(1)"),
@Facet(name = "BFacets.MIN", value = "BDouble.make(0D)"),
@Facet(name = "BFacets.MAX", value = "BDouble.make(100D)")
                    },
          defaultValue = "BDouble.make(\"74.0\")"
    )
@NiagaraProperty
    (
            name = "UnOccupiedCoolingSetPoint",
            type = "Baja:Double",
            flags = Flags.SUMMARY,
            facets=
                    {
@Facet(name = "BFacets.UNITS", value = "BUnit.getUnit(\"fahrenheit\")"),
@Facet(name = "BFacets.PRECISION", value = "BInteger.make(1)"),
@Facet(name = "BFacets.MIN", value = "BDouble.make(0D)"),
@Facet(name = "BFacets.MAX", value = "BDouble.make(100D)")
                    },
      defaultValue = "BDouble.make(\"85.0\")"
    )
@NiagaraProperty
    (
            name = "OccupiedHeatingSetPoint",
            type = "Baja:Double",
            flags = Flags.SUMMARY,
            facets=
            {
@Facet(name = "BFacets.UNITS", value = "BUnit.getUnit(\"fahrenheit\")"),
@Facet(name = "BFacets.PRECISION", value = "BInteger.make(1)"),
@Facet(name = "BFacets.MIN", value = "BDouble.make(0D)"),
@Facet(name = "BFacets.MAX", value = "BDouble.make(100D)")
            },
            defaultValue = "BDouble.make(\"70.0\")"
    )
@NiagaraProperty
    (
            name = "UnOccupiedHeatingSetPoint",
            type = "Baja:Double",
            flags = Flags.SUMMARY,
            facets=
            {
@Facet(name = "BFacets.UNITS", value ="BUnit.getUnit(\"fahrenheit\")"),
@Facet(name = "BFacets.PRECISION", value = "BInteger.make(1)"),
@Facet(name = "BFacets.MIN", value = "BDouble.make(0D)"),
@Facet(name = "BFacets.MAX", value = "BDouble.make(100D)")
            },
            defaultValue = "BDouble.make(\"55.0\")"
    )
public class BSchedule extends BComponent {
}

我希望 defaultValue 行上没有“类”或“接口”预期错误。

标签: java-annotations

解决方案


你的语法有问题,你应该使用下面的语法。

defaultValue = "BDouble.make(55.0)",

查看完整示例,

@NiagaraProperty(
  name = "delayTime",
  type = "baja:Double",
  defaultValue = "BDouble.make(500)",
  facets = {
    @Facet(name = "BFacets.MIN", value = "BDouble.make(0)"),
    @Facet(name = "BFacets.MAX", value = "BDouble.make(2000)"),
    @Facet(name = "BFacets.UX_FIELD_EDITOR", value = "BString.make(\"midi:RangeSlider\")")
  }
)

推荐阅读