您可以在 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# 中最接近的对应物?

在 C# 中确保没有锁语句的线程安全

在 Chrome 开发者工具中查看请求时间

链接整个表格行? [复制]

请问:C# listView控件如何判断滚动条的位置?判断滚动条在控件的最下面?

在java中加密文本文件的最简单方法