Javaのpackage, importではまった
すごく初歩的な部分で恥ずかしいのだが、Javaのpackage, import機構ではまったのでメモしておく。
packageでデフォルトパッケージになっているクラスは、他のクラスから呼び出すことができないみたいですね。
エラーになる例
Main.java
public class MainClass { public static void main(String[] args) { System.out.println("This is main Class."); } }
Test.java
package dir1;
public class Test {
public static void main(String[] args) {
Main.main(null); // ←コンパイルエラー
}
}
こんな感じの時に、Test側からMainを呼び出そうとすると、コンパイルエラーになってしまいます。
デフォルトパッケージをインポートする方法(?)があるなら動きそうなんですが、私はそんな方法知りません。
解決方法
結論から言うと、解決方法は要するにデフォルトパッケージを使わなければいいだけの話でした。
Main.java (package rootを追加)
package root;
public class MainClass {
public static void main(String[] args) {
System.out.println("This is main Class.");
}
}
Test.java (packageをroot.dir1に変更)
package root.dir1;
public class Test {
public static void main(String[] args) {
Main.main(null);
}
}
こんな感じならOKでした。