If the named type is not in the current package then it must be in an accessible package and declared public, or a compile-time error occurs.
The error does not occurr.
============================= file pkgs040b.java
package javasoft.sqe.tests.java_spec.pkgs040a;
import java.io.PrintStream;
class pkgs040b {
static public int val = 7;
}
============================= file pkgs040.java
package javasoft.sqe.tests.java_spec.pkgs040;
import java.io.PrintStream;
import javasoft.sqe.tests.java_spec.pkgs040a.pkgs040b;
public class pkgs040 {
public static void main(String argv[]) {
System.exit(run(argv,System.out));
}
public static int run(String argv[],PrintStream out) {
if ( pkgs040b.val != 7) {
out.println ( "not pass" );
return 2;
}
return 0;
}
}
=============================
compile both and run pkgs040
The error does not occurr.
============================= file pkgs040b.java
package javasoft.sqe.tests.java_spec.pkgs040a;
import java.io.PrintStream;
class pkgs040b {
static public int val = 7;
}
============================= file pkgs040.java
package javasoft.sqe.tests.java_spec.pkgs040;
import java.io.PrintStream;
import javasoft.sqe.tests.java_spec.pkgs040a.pkgs040b;
public class pkgs040 {
public static void main(String argv[]) {
System.exit(run(argv,System.out));
}
public static int run(String argv[],PrintStream out) {
if ( pkgs040b.val != 7) {
out.println ( "not pass" );
return 2;
}
return 0;
}
}
=============================
compile both and run pkgs040
- relates to
-
JDK-4009152 Using public field of non-public class from another package is permitted.
-
- Closed
-