簡體   English   中英

Groovy類非公共變量對Java類不可見

[英]Groovy class non-public variables not visible to Java class

我在同一包中有兩個常規類:

class GTest {
  static Void main(args) {
    println G.newInstance().var // $> available
  }
}

class G {
  String var = "available"
}

當我從同一包中的java類對G進行類似的引用時,不再可見var

public class JTest {
  public static void main(String[] args) {
    G g = new G();
    System.out.println(g.var);  // $> The field G.var is not visible
  }
} 

當我在groovy類中顯式公開var ,JTest可以訪問它。 屬性范圍取決於調用者的類型嗎?

Groovy會為類屬性生成獲取器和設置器。 當您將修飾符置於字段定義之外時,它實際上是在將該屬性創建為私有字段並生成訪問器和更改器方法。

當使用Groovy時,調用'g.var'實際上會調用訪問器(即'g.getVar()'); 它只是允許您使用屬性訪問樣式。

如果您的Java類名為“ g.getVar()”,它將能夠訪問數據。

有關更多冗長的說明,請參見Groovy Beans

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM