用Google搜索它,发现了大量代码。但是他们中的任何一个都给了我我想要的。我想使一个普通数组不可变。我尝试了这个:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class test {
public static void main(String[] args) {
final Integer array[];
List<Integer> temp = new ArrayList<Integer>();
temp.add(Integer.valueOf(0));
temp.add(Integer.valueOf(2));
temp.add(Integer.valueOf(3));
temp.add(Integer.valueOf(4));
List<Integer> immutable = Collections.unmodifiableList(temp);
array = immutable.toArray(new Integer[immutable.size()]);
for(int i=0; i<array.length; i++)
System.out.println(array[i]);
array[0] = 5;
for(int i=0; i<array.length; i++)
System.out.println(array[i]);
}
}
但这不起作用,我可以将5分配给array [0] …有什么方法可以使该数组不可变?
如果要将 其用作数组 ,则不能。
您必须为其创建包装器,以便在上引发一个异常.set()
,但是没有足够的环绕将允许您在以下情况上引发异常:
array[0] = somethingElse;
当然,元素的不变性完全是另一回事!
注意: 为不支持的操作抛出的标准异常恰当地命名为UnsupportedOperationException
;
由于未选中它,因此不需要在方法的throws
子句中声明它。
问题内容: 假设我有一个方法m(),该方法将字符串数组作为参数。有什么方法可以在我打电话时直接声明该数组?即代替: 我可以只用一行代替它,而避免声明一个我永远不会使用的命名变量吗? 问题答案:
问题内容: 这样的事情会使小部件正常显示: 虽然这样,将使小部件完全不显示: 问题答案: 您可能对 小部件的和方法感兴趣。在以下示例中,单击后按钮消失
材料设计非常强调“纸张”的隐喻。要做到这一点,阴影是必不可少的。由于材料设计是一种理念,而不是API(尽管它内置在L中),因此应该在任何地方(Windows窗体、HTML/CSS等)进行设计。如何在Android API 14到20中做到这一点? 请注意,对于圆形和其他非方形形状,预制PNG实际上并不实用。
在我的应用程序中,我试图优雅地处理当主控程序由于某些原因不可用时(例如DC之间的连接中断)的情况。在这种情况下,前端应该禁用写操作,而缓存数据库应该用于某些读操作。 我尝试使用命令。它在shell中工作,但在主程序不可用时,它不能在中工作,因为命令不在列表中。结果我有个例外: 当然,我可以处理这个异常,但它是在超时(在我的情况下是10秒)后生成的。但在我的情况下太长了。我更喜欢立即反应,如果有时会
问题内容: 我有一个使用XML和反射将 s 返回到另一个类的类。 通常,这些对象是外部对象的子字段,但有时我想即时生成它。我已经尝试过类似的方法,但无济于事。我相信这是因为Java不允许你访问进行反射的方法。 如果提供的方法失败,则失败。我可以通过制作方法来解决它,或者制作另一个类来派生它。 长话短说,我只是想知道是否存在一种通过反射访问方法的方法。 问题答案: 你可以使用反射调用私有方法。修改已