簡體   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