[英]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.