2015-12-13 50 views
0

我在我的應用程序中有這樣的不同的包。從另一個類的訪問字符串

enter image description here

CansTypeObject類看起來像這樣

public class CansTypeObject { 
    String productId; 
    String productName; 
    String productPrice; 
    String productReturnPrice; 
    String productImage; 
} 

現在,我想從MainActivity

CansTypeObject object = new CansTypeObject(); 

訪問這些字符串,但我不能。如果我將CansTypeObject類移動到與MainActivity相同的包,我可以訪問它們。這是什麼解決方案?

回答

3

默認範圍是包私有的。使用public修飾符的字符串聲明

public String productId; 
+1

默認爲封裝。不是私人的。 – Blackbelt

+0

哦..傻我怎麼錯過了單個字符串的範圍。謝謝 –

2

這種行爲的唯一原因是你宣佈你的類的字符串作爲包保護字符串。在Java中,這意味着只有同一個包中的類才能訪問這些字段。

針對您的問題有幾種解決方案。 第一(和最差) - 宣告你的領域公共字符串,像這樣:

public String myField; 

第二 - 爲您創造領域的getter和聲明你的字符串作爲私人領域,像這樣:

private String myField; 

public String getMyField() { 
    return myField; 
} 

然後,在你的類對象上使用這個getters。

希望它有幫助。

0

可以定義爲CansTypeObjectgetter-setter方法輕鬆訪問它們如下:

public class CansTypeObject { 
    String productId; 
    String productName; 
    String productPrice; 
    String productReturnPrice; 
    String productImage; 

    public String getProductId() { 
     return productId; 
    } 

    public void setProductId(String productId) { 
     this.productId = productId; 
    } 

    public String getProductName() { 
     return productName; 
    } 

    public void setProductName(String productName) { 
     this.productName = productName; 
    } 

    public String getProductPrice() { 
     return productPrice; 
    } 

    public void setProductPrice(String productPrice) { 
     this.productPrice = productPrice; 
    } 

    public String getProductReturnPrice() { 
     return productReturnPrice; 
    } 

    public void setProductReturnPrice(String productReturnPrice) { 
     this.productReturnPrice = productReturnPrice; 
    } 

    public String getProductImage() { 
     return productImage; 
    } 

    public void setProductImage(String productImage) { 
     this.productImage = productImage; 
    } 
} 

創建消氣setter方法,你可以使用快捷鍵

MAC - command + N

Windows - Alt + Insert

另一種方法是打開你的班級必須讓getter setter然後right click and from the context menu select Generate option