假设我需要向array1
添加元素。我采用的方法是使用array1
将array2
复制到for loop
,而不是删除array1
,并重新声明array1
,其中一个元素比之前的array1
。而不是将array2
复制到array1
,而是初始化array1
中的新元素。但我猜测没有办法删除array
,所以如何在声明后向array
添加元素。
答案 0 :(得分:0)
如果您有命名冲突,最好的解决方案是使用更具描述性的变量名称。
在您的情况下,请使用nameOfThing1
或nameOfThing2
来区分它们。但在大多数情况下,当某个“名称”是一个数字时,它通常被称为“id”。
根据具体情况,另一种策略是重构代码,以便变量不在同一时间范围内。您可以使用{ }
声明一个块,以便为每个变量创建一个单独的范围。
答案 1 :(得分:0)
假设我有一个名为NAME的int,我需要删除它,以创建一个具有相同名称的String。将NAME = null删除int ??
没有。它会给你一个编译错误。
如果没有,那么如何删除变量?
你做不到。无法删除变量。
(除此之外:如果可以更改变量名称与其声明类型之间的绑定,Java的静态类型将会中断。如果您(实际上)删除了原始变量,那就不会那么糟糕了,但它会是对可读性不好。无论如何......你不能。)
一种解决方案是使用不同的变量名声明另一个变量。使用更好的变量名称会有所帮助。
或者,您可以使用块作用域来管理(本地)变量的范围/生命周期。例如:
public void doIt() {
int a = 1;
{
String a = "hey"; // compilation error
int b = 2;
}
String b = "bee"; // OK
}
请注意,您只能使用局部变量执行此操作。
如果您担心同时拥有多个变量的“效率开销”,请不要这样做。如果存在显着的效率问题,JIT编译器应该能够处理它。 (如果不是现在,那么在未来的Java版本中。)