我在面试中被问到这个问题而无法找到解决方案:
我在班上宣布了一份清单。在宣言期间,我没有 让它变得静止。但是在添加了一些数据之后,我想做到这一点 静态的。有可能吗?
我们可以更改列表的数据类型。
编辑:是否无法声明静态类型的数组,然后将列表转换为数组,从而使其成为静态?
答案 0 :(得分:4)
不使用标准java,但实际上可以使用Javassist等库来操作正在运行的字节代码;从技术上讲,答案是肯定的,但如果你真的这样做,你可能会被团队领导者击中。
答案 1 :(得分:3)
没有。声明是在编译时。在运行时添加一些数据。您无法在运行时更改声明 - 因此答案是否定的。
......但你为什么要这样做呢?
答案 2 :(得分:0)
您无法在runTime更改声明。
编写代码时,需要将代码(包括声明)编译为字节代码或本机二进制代码。
否则,对于那些函数调用静态函数但没有任何静态声明,你将在编译时遇到错误。
答案 3 :(得分:0)
我不知道你的面试官在想什么,但是你无法将这个特定的列表变量更改为在运行时变为静态。
但现在我会推测。由于使其成为静态的主要原因是每个类具有列表的单个副本并且能够通过类而不是实例访问它,所以在运行时可以做的是将此列表分配给某个静态变量然后它将是以这种方式访问。当然,如果你有多个具有不同列表副本的类实例,那么在没有某种合并的情况下,它在逻辑上是不可能的。再一次,我可以猜测一下你的面试官想要什么。