您可以在 Java 中获得的最接近 C# 内部修改的内容是啥?
Posted
技术标签:
【中文标题】您可以在 Java 中获得的最接近 C# 内部修改的内容是啥?【英文标题】:What is the closest thing to the C# internal modified that you can get in Java?您可以在 Java 中获得的最接近 C# 内部修改的内容是什么? 【发布时间】:2013-02-17 02:58:53 【问题描述】:.NET 有一个包内部作用域,它使一个类型对模块(.dll 文件)可见,Java 中最接近的等价物是什么?默认可见性仅与包名称有关,不关心类的捆绑方式。
我知道 Java 语言本身没有比这更好的东西了,但是有没有工具可以模拟这个与构建系统和 IDE:s 配合得很好?例如,是否有一个混淆工具可以隐藏所有使用特定注释注释的类,以及常见 Java IDE 支持的工具:s 以确保此类类不被其模块之外的任何东西使用?
【问题讨论】:
你需要将你的类混淆成你自己的包吗? @Igor,我需要确保它们不能从生成的 jar 文件外部访问,使用重写带注释的类的混淆工具可能是一种方法,尽管我不希望它们被重命名等。 可访问是指不能实例化/使用类吗?还是不能拆开罐子拿到它们? @Igor,根本无法从编译的 .jar 之外的其他类中引用/使用它们。我不需要这样的混淆,我只是提到它作为一种可能的方法,也许将这些类重命名为包含特殊字符的东西,使它们无法从普通 Java 代码中访问。 在我看来,“包访问”类——即没有public
修饰符声明的***类——具有相同的功能。它们仅对同一包中的类可见。
【参考方案1】:
Java 还没有类似的东西。
您可以将这些类放在一个名为“internal”的包中,并将其从 javadoc 中排除。
【讨论】:
以上是关于您可以在 Java 中获得的最接近 C# 内部修改的内容是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Java 的 ByteBuffer 在 C# 中最接近的对应物?