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

发布于 2024-09-04 16:46:33 字数 511 浏览 1 评论 0原文

我想使用 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 版本不同。

I want to access a static JavaFX class member from Java using the Javafx reflection API.

E.g. JavaFX code:

public var thing;

class MyJavaFXClass {
}

Java code:

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

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

  return thing;
}

What Java code do I need to access 'MyJavaFXClass.thing'?

Note: I am using JavaFX 1.3 - I'm not sure if the reflection API is different here to earlier JavaFX versions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

满意归宿 2024-09-11 16:46:33
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);
FXClassType classType = FXContext.getInstance().findClass("mypackage.MyJavaFXClass");
FXVarMember var =  classType.getVariable("thing");
FXValue value = var.getValue(null);
System.out.println(value.getValueString());

or if you want the Object, not the String.

FXLocal.Value value = (FXLocal.Value)var.getValue(null);
Object obj = value.asObject();
System.out.println(obj);
百变从容 2024-09-11 16:46:33

您的“MyJavaFXClass”应该实现一个接口 IF。
接口 IF 应该定义至少一种返回“var thing”类型的方法。
然后,您的“MyJavaFXClass”必须使用“class MyJavaFXClass extends IF”来实现该接口。

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

Your "MyJavaFXClass" should implement an interface IF.
The interface IF should define at least one method that returns the type of your "var thing".
Your "MyJavaFXClass" then must implement the interface using "class MyJavaFXClass extends IF".

To access your "thing" from Java code, first cast the Object to IF and then call the method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文