package-private相关内容

为什么枚举可以有一个包私有构造函数?

既然枚举构造函数只能由它的常量调用,为什么还允许它是包私有的? 解决方案 构造函数实际上不是包私有的......它是隐式private接口方法隐式public 即使您不添加关键字. JLS 的相关部分(§8.8.3) 声明: 如果没有为普通类的构造函数指定访问修饰符,则构造函数具有默认访问权限. 如果没有为枚举类型的构造函数指定访问修饰符,则构造函数为private. ..
发布时间:2021-12-29 16:16:12 Java开发

Java 中包私有类的优缺点?

我最近在学习 Java,我遇到了 package-private 类的概念,如果我们不指定任何东西,这是默认的.但后来我意识到: 我很少看到包私有类的使用.这是否有原因,例如,它有严重的缺点,它是多余的,或者只是我读得不够?是否有强有力的论据支持/反对其使用? 如果在大多数情况下它真的没有用,为什么会默认它? 在现实世界中我们应该在什么情况下使用package-private?也 ..
发布时间:2021-12-09 21:15:10 Java开发

我什么时候会在 Java 中使用 package-private?

我喜欢任何语言的访问控制,但我发现在 Java 中我几乎从不(如果有的话)使用 package-private 访问修饰符(或缺少). 我意识到内部类可以是 private、protected 或 package-private,但外部类只能是 package-private 或 public.为什么外部类可以是 package-private 而不是 protected?限制类/方法/字段 ..
发布时间:2021-11-26 18:43:59 Java开发

我怎样才能只开班考试呢?

我主要是Java开发人员,在用Kotlin编写单元测试时想知道结构, 假设科特林没有 package-private private限制文件的可见性 internal限制对模块的可见性 我怎样才能只开放班来测试课程? 我必须在kotlin类或开放类中为所有模块(内部)编写测试吗? kotlin仅用于单元测试的开放方法是什么? 编辑 在: 我应该 ..
发布时间:2020-04-26 12:29:56 其他开发

Kotlin:使内部功能对于单元测试可见

如果测试位于与生产代码不同的模块中(这是常见的),那么使内部功能对于测试可见的最佳方法是什么? 在Java中,我会将生产代码和测试放在同一个程序包中,并将要测试的方法设置为私有(加上,如果唯一原因将其打包,请添加@VisibleForTest批注-测试,而不是私有).不幸的是,Kotlin没有package-private的概念. 解决方案 标记为internal访问修饰符的类和方法 ..
发布时间:2020-04-26 11:54:06 其他开发

我什么时候在Java中使用package-private?

我喜欢任何语言的访问控制,但我发现在Java中我几乎从不(如果有的话)使用 package-private 访问修饰符(或缺少)。 我意识到内部类可以 private , protected 或 package-private ,但外部类只能是 package-private 或 public 。为什么外部类可以 package-private 但不能 protected ?限制整个包所见的 ..
发布时间:2018-12-12 19:15:13 Java开发

使用反射访问不可见的类

我正在尝试使用反射来获取不可见类,AKA包私有类的实例。我想知道是否有办法切换修饰符使其公开,然后使用 Class.forName 访问它。当我尝试这样做时,它阻止我说我不能这样做。不幸的是, Class 类没有 setAccesible 方法。 解决方案 嵌套类 - 在其他类中定义的类(包括静态类和非静态类) 内部类 - 非静态嵌套类(内部类的实例需要存在外部类的实例) 非嵌 ..
发布时间:2018-12-06 12:48:43 Java开发

不是“包私有”成员访问是否与默认(无修饰符)访问同义?

我对某些文档使用的术语“包私有”以及“默认访问”的使用感到有些困惑。包私有和默认访问都不是受保护的同义词吗? 解决方案 是的,它几乎是一样的。 protected修饰符指定只能在其自己的包中访问该成员(与package-private一样),并且另外,由另一个包中的类的子类访问。 ..

为什么枚举有一个包私有构造函数?

由于枚举构造函数只能由其常量调用,那么为什么它被允许为package-private? 解决方案 构造函数实际上不是package-private ...它隐式地是 private 接口方法隐式的方式 public even如果你不添加关键字。 JLS的相关部分(§8.8.3)状态: 如果没有为普通类的构造函数指定访问修饰符,构造函数具有默认访问权限。 如果没有为枚举类型 ..
发布时间:2017-08-23 20:06:06 Java开发

Java - private和package-private枚举构造函数之间的区别

最近我经常使用枚举。所以我不知道... 私有Enum构造函数和任何可见性修饰符(package-private)之间的枚举构​​造函数有什么区别吗? 解决方案 根据java docs 枚举类型的构造函数必须是包私有或私有访问。 但是要加入 JLS 如果未指定访问修饰符对于枚举类型的构造函数,构造函数是私有的。 因此,package-private和privat ..
发布时间:2016-12-30 15:20:28 Java开发

Java中包私有类的利弊?

我最近学习Java,我遇到了 package-private 类的概念,如果我们不指定任何内容,这是默认的。但后来我意识到: 我很少看到package-private类的使用。有这样的原因,例如,它有严重的缺点,它是多余的,或者只是我不足够? 如果在大多数情况下它真的无用,为什么会是默认的? / li> 在现实世界中我们应该在什么情况下使用package-private? ..
发布时间:2016-11-23 10:56:00 Java开发

为什么不C#有包私有?

我学习C#和从Java世界来了,我是一个有点困惑地看到,C#没有一个“一揽子私有”。大多数意见,我已经看到了关于这个数额“你不能做到这一点,语言不是这样设计的。”我也看到了一些解决方法,涉及内部和部分随着评论说,说这些变通办法违背了语言的设计。 为什么C#设计的这种方式?另外,我会怎么做类似如下:我有一个产品类和 ProductInstance 类。我希望有一个 ProductInstanc ..
发布时间:2016-09-20 10:41:24 Java开发