加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

我如何“获取”Scala case对象从Java?

发布时间:2020-12-16 09:47:38 所属栏目:安全 来源:网络整理
导读:我在Scala中创建了一个case对象的层次结构,如下所示: package my.awesome.packagesealed abstract class PresetShapeType(val displayName: String)case object AccelerationSensor extends PresetShapeType("Acceleration Sensor")case object Displaceme
我在Scala中创建了一个case对象的层次结构,如下所示:

package my.awesome.package

sealed abstract class PresetShapeType(val displayName: String)

case object AccelerationSensor extends PresetShapeType("Acceleration Sensor")
case object DisplacementSensor extends PresetShapeType("Displacement Sensor")
case object ForceSensor        extends PresetShapeType("Force Sensor")
case object PressureSensor     extends PresetShapeType("Pressure Sensor")
case object StrainSensor       extends PresetShapeType("Strain Sensor")

我也有一个Java代码,我想访问PressureSensor,但以下不工作:

package my.awesome.package.subpackage;

import my.awesome.package.PressureSensor;

// Do some stuff,then...

DVShape newshape = DVShapeFactory.createPresetShape(PressureSensor,new Point3f(0,0));

那么,我如何从Java引用PressureSensor案例对象?我反编译了PressureSensor和PressureSensor $类的字节码,产生了以下结果:

Compiled from "DVShapeFactory.scala"
public final class org.nees.rpi.vis.PressureSensor extends java.lang.Object{
    public static final java.lang.Object productElement(int);
    public static final int productArity();
    public static final java.lang.String productPrefix();
    public static final int $tag();
    public static final java.lang.String displayName();
}

Compiled from "DVShapeFactory.scala"
public final class org.nees.rpi.vis.PressureSensor$ extends org.nees.rpi.vis.PresetShapeType implements scala.ScalaObject,scala.Product,java.io.Serializable{
    public static final org.nees.rpi.vis.PressureSensor$ MODULE$;
    public static {};
    public org.nees.rpi.vis.PressureSensor$();
    public java.lang.Object readResolve();
    public java.lang.Object productElement(int);
    public int productArity();
    public java.lang.String productPrefix();
    public final java.lang.String toString();
    public int $tag();
}

但这没有产生任何伟大的见解。

解决方法

从Java,说:

my.awesome.package.PressureSensor$.MODULE$

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读