繁体   English   中英

如何从Java访问JavaFX 1.3静态类成员?

[英]How do I access a JavaFX 1.3 static class member from Java?

我想使用Javafx反射API从Java访问静态JavaFX类成员。

例如JavaFX代码:

public var thing;

class MyJavaFXClass {
}

Java代码:

private Object getThing() {
  FXClassType classType = FXContext.getInstance().findClass("mypackage.MyJavaFXClass");

  // Get static member 'thing' from 'MyJavaFXClass'
  // <Insert Code Here>

  return thing;
}

访问“ MyJavaFXClass.thing”需要什么Java代码?

注意:我正在使用JavaFX 1.3-我不确定反射API是否与早期JavaFX版本不同。

FXClassType classType = FXContext.getInstance().findClass("mypackage.MyJavaFXClass");
FXVarMember var =  classType.getVariable("thing");
FXValue value = var.getValue(null);
System.out.println(value.getValueString());

或者如果您想要对象,而不是字符串。

FXLocal.Value value = (FXLocal.Value)var.getValue(null);
Object obj = value.asObject();
System.out.println(obj);

您的“ MyJavaFXClass”应实现接口IF。 接口IF应该至少定义一种返回“可变物”类型的方法。 然后,您的“ MyJavaFXClass”必须使用“ Class MyJavaFXClass extended IF”实现接口。

要从Java代码访问“事物”,首先将Object转换为IF,然后调用该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM