0

テスト パッケージに Test クラスが 1 つあるとします。

package test;

public class Test {

    private static int clarying=20;

    public static void main(String[] args) {
        clarying.Product.display(clarying); // this line is giving error 
                                            // The primitive type int of
                                            // clarying does not have a field Product
    }
}

clarying パッケージに別のクラス Product があるとします。

package clarying;

public class Product {
    private static int test;

        public static void display(int data) {
            test = data;
            System.out.println(test);
        }
}

Product クラスをコンパイルした後、Test クラスをコンパイルしようとしていますが、コンパイラ エラーがスローされます。

 Exception in thread "main" java.lang.Error:
 Unresolved compilation problem:  
 The primitive type int of clarying does not have a field Product
  at test.Test.main(Test.java:5)

問題は次のとおりです。

clarying.Product.display(clarying);

Test クラスでは変数名が clarying なので、パッケージ名 clarying と同じです。だから、私がclarying.Productを書いているとき、それはclaryingクラス変数内のフィールドProductを検索しています。

明確にしたいのですが、パッケージと同じ名前の変数を定義することに対する規則はありますか?

4

2 に答える 2