问题标签 [package-private]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
216 浏览

scala - 移动包私有类——我应该认为二进制不兼容吗?

由于auxWindows 下的包名称存在问题,我正在从库的包层次结构中移动一个帮助类

该类是库私有的,即private[scalainterpreter] object Helper.

现在使用Typesafe Migration-Manager,显然它报告更改不兼容:

但我怀疑如果客户端代码没有调用任何一个对象,接口仍然兼容,因此我可以使用小版本增加来表示更改,并允许这两个版本互换使用。

正确的?

0 投票
2 回答
991 浏览

java - 访问跨 Eclipse 项目共享的类中的包私有字段

我有一个在两个 Eclipse 项目中使用的模型类(MVC 模式)。

我们称之为一个项目,它Producer是从流中捕获数据并将其存储到数据库中。有问题的模型类,例如ObjectModel,用于在序列化和存储在数据库中之前反序列化流以进行操作。

另一个项目,我们称之为Consumer,正在提取存储在数据库中的数据并在屏幕上可视化。它使用相同的模型类来反序列化存储的数据,以便在可视化应用程序中使用。

我计划将其放入一个 Eclipse 项目中,以便在和项目ObjectModel之间共享其源代码。但是,每个应用程序当前在同一个包中都有类,这些类利用 package-private 访问修饰符来获取和设置.ProducerConsumerObjectModel

有什么方法可以在多个 Eclipse 项目之间共享源代码,并且仍然使用共享源维护包私有访问?

更新:我在 Eclipse 项目之间共享代码时遇到了麻烦,这就是为什么我在发布之前不尝试这个的原因。终于让那部分工作了,并在这里写成另一个答案。

0 投票
6 回答
48534 浏览

java - 使用反射访问不可见的类

我正在尝试使用反射获取不可见类的实例,即 AKA 包私有类。我想知道是否有办法切换修饰符以使其公开,然后使用Class.forName. 当我现在尝试这样做时,它会阻止我说我做不到。不幸的是,没有该类setAccesible的方法Class

0 投票
1 回答
916 浏览

android - 如何从 SurfaceView 调用 Activity 中的包私有方法?

我的 Activity 类中有一个非静态的包私有方法,我想在 SurfaceView 中调用它,例如:surfaceChanged() 或 surfaceDestroyed()。

有一个更好的方法吗?我在同一个活动中也有一个 toggleFlash() 方法,因此我可以通过关键侦听器在活动中切换闪光灯。

0 投票
3 回答
2022 浏览

java - 有没有办法在 Java 中执行不安全的代码(禁用安全管理器)?

请不要发布“你不应该这样做”的答案。我不打算在生产代码中使用它,而只是为了一些黑客的乐趣。

在回答这个问题时,我想运行一些任意不安全的 Java 代码来取乐。有问题的代码只涉及查找 Java 的节点TreeMap

运行以下代码会导致

根据这个问题,我可以System.setSecurityManager(null)用来绕过大部分这些限制。但我不能这样做,因为加载我的类时会弹出错误。

我已经知道在禁用安全管理器后我可以使用反射来做所有我想做的事情。但这会使代码更难看。核心 Java 开发人员如何编写他们的单元测试,例如,如果他们不能将东西打包到java.util.

我也尝试过-Djava.security.manager=...,但是当我将它设置为 时,这会导致 JVM 初始化错误null,而且我不确定我还能将它设置为什么。有任何想法吗?

0 投票
2 回答
18081 浏览

java - 我什么时候在 Java 中使用包私有?

我喜欢任何语言的访问控制,但我发现在 Java 中我几乎从不(如果有的话)使用包私有访问修饰符(或缺少)。

我意识到内部类可以是private, protected, or package-private,但外部类只能是package-privateor public。为什么外部类可以package-private但不能protected?限制类/方法/字段被整个包看到而不是子类有什么好处?

0 投票
2 回答
1669 浏览

java - Java - 私有和包私有枚举构造函数之间的区别

最近我经常使用枚举。所以我想知道...

私有枚举构造函数和没有任何可见性修饰符(包私有)的枚举构造函数之间有什么区别吗?

0 投票
0 回答
548 浏览

generics - Bound mismatch with generics: The type is not a valid substitute for the bounded parameter

The error is "Bound mismatch: The type UserSettingsFragment is not a valid substitute for the bounded parameter of the type TabListener" and it occurs on the parametrizing of UserSettingsFragment.

Here are the relevant class signatures:

Note that FacebookFragment is package private in the Facebook SDK and therefore "not intended to be consumed by external applications." Is there some kind of rule that disallows parametrizing a subclass of the correct subclass(es) in this instance?

Thanks!

0 投票
3 回答
180 浏览

java - 有什么办法可以避免强制转换这种类型?

考虑以下定义和实现Foo接口的类:

外部类将调用MyClass.getFoo()以获取一个Foo对象,并可能将其传递回fooMethod(). fooMethod()期望FooImpl实现Foo并强制转换Foo为,FooImpl因此它可以调用包私有方法hiddenMethod()

我的问题是,我并不热衷于投射FooFooImpl. 我可以用另一种模式来做同样的事情吗?

提前致谢...

0 投票
3 回答
516 浏览

java - 枚举实现接口、接口和方法可见性

我刚刚遇到以下代码,这让我有点惊讶,不过我在这里将它转换为一个简单的 SSCEE:

custompackage.package1.MyEnum.java

现在从这个包之外,我可以执行以下操作:

但是我根本无法使用MyInterface,我理解它是包私有的custompackage.package1

我不明白到底发生了什么,似乎添加MyEnummyMethod()方法,但它没有实现(从外部)MyInterface
这是如何运作的?