テスト パッケージに 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を検索しています。
明確にしたいのですが、パッケージと同じ名前の変数を定義することに対する規則はありますか?