【发布时间】:2019-08-17 10:00:47
【问题描述】:
我正在编写一些代码,其中我需要从另一个类的静态块中访问变量“hs”。 注意:这两个类都预设在不同的包中。
代码如下:
public class A{
static {
HashSet<String> hs = new HashSet<>();
}
}
我在 Google 上搜索了一下,但没有发现任何有用的信息。 您的帮助将不胜感激。
编辑:我不允许在此文件中进行更改,但仍需要从其他文件访问它。
为什么我需要这样做,因为我正在通过 JUnit 进行单元测试,并且该块返回的任何内容都没有我可以将 assertEquals() 放在上面。所以我留下的选项是测试副作用,这个变量“hs”值作为副作用被改变了。这就是为什么我需要从另一个文件访问它。
【问题讨论】:
-
@lealceldeiro 感谢您的快速回复。实际上,这项工作就像我无法对代码进行更改,并且仍然需要从另一个文件中访问它。你能帮我解决一下吗?
-
您无法访问此变量。它仅在静态块期间临时存在,与
A类无关。 -
这可能是
XY Problem。也许您可以添加一个解释,为什么您甚至不想这样做? -
@lealceldeiro 不,不是。没有访问修饰符与局部变量相关联。
-
@second 我已经编辑了解释,检查它是否阐明了为什么我需要这样做。
标签: java unit-testing testing static-block