• java: 包内的类不能引用默认包中的类


    用Eclipse写程序时,发现一个问题:当一个位于某个包中的类 (代码顶端 有 package xxx;) 访问 默认包中的类 (代码顶端没有 pacakge xxx;) 时, 代码检查通不过。

    我怀疑是否Eclipse对此做了限制,于是就用 Emacs 试验了一下:

    建立B.java,定义 class B:

    class B
    {
      public void print()
      {
        System.out.println("This is an object of B class.");
      }
    }
    

    建立A.java,定义class A,A在test命名空间中,引用B:

     1 package test;
     2 
     3 class A
     4 {
     5   public static void main(String [] args)
     6   {
     7     B b = new B();
     8     b.print();
     9   }
    10 }

    javac B.java A.java 发现不管A.java中是否 import B ,编译都不通 过,看来是javac的限制。

    通过网上搜索发现,用java 1.2, 1.3时,是可以从包中引用默认包中的类 的,但java 1.4之后就不行了:Java 1.4兼容文档 中有说明,并建议把所 有在未命名的名字空间(默认包)中的类放到某个命名空间中。

    无奈,只好顺从吧。

    2012-06-10

  • 相关阅读:
    分布式
    jdk与jre的区别
    rabbitmq
    dicom错误解决
    centos6.5搭建hadoop完整教程
    spark
    Oracle索引扫描
    Oracle的rowid结构解析
    PL/SQL — 集合及常用方法
    PL/SQL — 变长数组
  • 原文地址:https://www.cnblogs.com/jiqingwu/p/java_access_class_in_default_package.html
Copyright © 2020-2023  润新知