Tôi tạo ra một hệ thống các trường hợp các đối tượng trong Scala trông giống như sau:Làm cách nào để "nhận" đối tượng trường hợp Scala từ Java?
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")
Tôi cũng có một đoạn mã Java trong đó tôi muốn truy cập PressureSensor
, nhưng sau đó không làm việc:
package my.awesome.package.subpackage;
import my.awesome.package.PressureSensor;
// Do some stuff, then...
DVShape newshape = DVShapeFactory.createPresetShape(PressureSensor, new Point3f(0,0,0));
Vì vậy, làm cách nào để tham chiếu đối tượng trường hợp PressureSensor
từ Java? Tôi phân tích với mã byte cho cả PressureSensor
và PressureSensor$
lớp học, mà mang lại như sau:
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();
}
Nhưng điều đó không mang lại bất cứ cái nhìn sâu sắc tuyệt vời.
Có thực sự là không có sự khác biệt giữa 'đối tượng trường hợp' và' đối tượng'. – Jus12