繁体   English   中英

导入包以及如何使用java文件中的所有类

[英]Import package and how to use all classes in a java file

我正在创建一个包com.XXXX Inside我在java文件中声明了很多类(默认 - 不公开)

让我们像:

class A{}
class B{}
class C{}

我在另一个文件中导入com.XXXX

我无法使用包内的这些类,因为它们不是公共的。

所以我正在推动为每个类创建单个文件的状态。

每个类只是一个小结构,它没有任何额外的功能。 所以我想把它们保存在单个文件中。 所以我不能将类声明为公共类

有没有办法使用所有类而不将它们分成单独的文件?

这是因为默认的java访问修饰符是包私有。 当您创建没有访问修饰符的类时,它们只能在包中访问。

如果您不想将它暴露在jar之外,则将您的包重命名为com.internal.XXXX。 当你把内部关键字放在jar之外的包时,甚至认为包中的类是公开的。

如果(某种程度上)将这些类组合在一起是有意义的,那么您可以将它们作为静态内部类放在包装类中,例如:

package com.somewhere;

public class Utils {
    public static class DateUtils {
        public static Date today() {
            return new Date();
        }
    }

    public static class FilenameUtils {
        public static String stripExtension(String path) {
            return path.substring(0, path.lastIndexOf("."));
        }
    }
}

然后,您将能够在其他地方导入这些:

package com.elsewhere;

import com.somewhere.Utils;

public class Task {
    Date today = Utils.DateUtils.today();
}

如果要在同一文件中包含多个类,则可以使用嵌套类。

请看一下: https//docs.oracle.com/javase/tutorial/java/javaOO/nested.html

例:

class OuterClass {
    ...
    class NestedClass {
        ...
    }
}

然后,您可以从另一个包中提交到OuterClass.NestedClass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM