19得票2回答
为什么C#没有包级私有?

我正在学习C#,来自Java世界,有点困惑的是C#没有"package private"。大多数评论都是"你不能这样做;这个语言不是这样设计的"。我还看到了一些解决方法,包括internal和partial,还有注释说这些解决方法违反了语言的设计。 C#为什么会被设计成这样?另外,如果我想做...

75得票8回答
Java中包私有类的优缺点是什么?

我最近在学习Java,了解到package-private类的概念,如果我们不指定任何访问修饰符,这是默认的。但后来我意识到: 我很少看到使用package-private类。这是出于什么原因呢?例如,它有严重缺陷、冗余或仅仅是因为我读得不够多?是否有强有力的理由支持/反对其使用? 如果在...

22得票1回答
Lambda表达式在运行时出现java.lang.BootstrapMethodError错误

在一个包(a)中,我有两个功能接口:package a; @FunctionalInterface interface Applicable<A extends Applicable<A>> { void apply(A self); } package a...

7得票2回答
如何仅将类公开给测试类?

我主要是Java开发人员,关于在Kotlin中编写单元测试时的结构问题而疑惑, 假设Kotlin中没有包私有 private 以限制对文件的可见性 internal 以限制对模块的可见性 如何仅将类打开给测试类? 我必须在Kotlin类中编写测试代码还是将类打开到整个模块(内部)?...

8得票3回答
移动一个包私有类,我需要考虑它是否是二进制不兼容的吗?

由于在Windows下包名为aux的问题,我将我的库中的辅助类从以下位置移动: de.sciss.scalainterpreter.aux 为了 de.sciss.scalainterpreter 该类是库的私有类,即private[scalainterpreter] object...

40得票2回答
为什么JUnit 5的默认访问修饰符改为包私有?

为什么JUnit 5中默认的访问修饰符是包可见性? 在JUnit 4中,测试必须是public。 将其改为包可见性的好处是什么?

37得票3回答
使内部函数对单元测试可见

如果测试代码与生产代码不在同一模块(这很常见),那么使内部函数对测试可见的最佳方法是什么? 在Java中,我会将生产代码和测试代码放在同一个包中,并使要测试的方法包范围内(此外,如果将其设置为包范围而不是私有的唯一原因是测试,则添加@VisibleForTest注释)。不幸的是,Kotlin...

13得票4回答
外部类访问包私有方法

假设我的包中有一个类org.jake,它有一个默认访问权限的方法(没有修饰符)。那么该方法仅在包内可见。 但是,当有人收到我的框架的jar文件时,有什么阻止他们编写一个新类,并将其包声明为org.jake,然后使用我本应不可见的方法呢? 换句话说,我能做些什么来防止这种情况发生吗?

65得票5回答
使用反射访问不可见的类

我正在尝试使用反射获取一个非可见类的实例,也就是包私有类。我想知道是否有一种方法可以将修饰符修改为public,然后使用Class.forName访问它。但是我现在尝试这样做时,会出现错误提示,告诉我不能这样操作。不幸的是,Class类没有setAccessible方法。

22得票4回答
Java中包可见性下的继承

我正在寻找以下行为的解释: 我有6个类,{a.A,b.B,c.C,a.D,b.E,c.F},每个类都有一个包可见的m()方法,该方法会输出类名。 我有一个a.Main类,其中包含一个主方法,用于对这些类进行一些测试。 输出结果似乎不遵循正确的继承规则。 以下是这些类:package a...