パッケージのプライベートクラスをパラメータとして受け取る別のパッケージから静的メソッドを呼び出す方法があるかどうか疑問に思っていますか?MessagePackagePrivateクラスを別の.javaファイルに移動して公開する唯一の方法はそれですか?そうしないと、このエラーが発生します:「MessagePackagePrivateタイプが表示されません」これは正常です。
つまり、クラスが静的メソッドを公開して公開していても、同じパッケージで呼び出されていない場合、そのクラスは使用できません。
コードスニペットは次のとおりです。
MainClass.java
package packageA;
import packageB.*;
public class MainClass {
public static void main(String[] args) {
ClassB.printString(new MessagePackagePrivate("Package problem"), 12);
}
}
ClassB.java
package packageB;
public class ClassB {
public static void printString( MessagePackagePrivate message , int numbers) {
System.out.println(message.getMessage() + " numbers: " + numbers );
// other logics will be implemented here ...
}
}
class MessagePackagePrivate {
private String text;
MessagePackagePrivate(String text) {
this.text = text;
}
public String getMessage() {
return this.text;
}
}