问题标签 [unmodifiable]
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.
data-binding - 如何仅通过自定义方法使 JavaFX ListProperty 可修改
我有一个私人列表,我不希望它可以从外部修改。只允许从外部添加,并且仅当对象有效时。因此我以前是这样写的:
现在出于 JavaFX 的目的,我将列表转换为一个属性:
为了从数据绑定等属性的好处中获利,ListChangeListener
我必须将属性提供给外部世界。但是随后也提供了对列表的所有方法的访问。(使用 ReadOnlyListProperty 无效,因为列表实例本身永远不会改变。)我可以做些什么来实现所有目标:
- 私有列表属性
- ListChangeListener 可以从外部添加
- 可用于从外部绑定依赖项(创建方法形成类 Bindings)
- 不修改属性或列表实例本身
- 仅通过我自己的方法从外部修改列表内容
java - 更新 unmodifiableMap 线程的引用是否安全
我有一张地图(我们称之为原始地图),它最初是空的。在服务部署期间以及之后的每个小时,我都需要刷新此地图或基本上重新评估它。
这是我的做法。在刷新中,我创建了一个新地图,并将该新地图的 unmodifiableMap 视图返回到我的原始地图,现在当重新分配发生时,即原始地图的引用发生更改,它会影响当前访问的任何其他线程原始地图?需要注意的是,在服务部署过程中,原始地图以类似的方式赋值,使用的刷新策略基本相同。
这里 plInfoByName 是我的原始地图,而 plInfo 包含一个不可修改的地图列表。这是 plInfo 列表的填充方式
所以当我这样做时,它会影响读取 TransactionData.plInfoByName 的任何线程吗?或者它是线程安全的,因为它是一个存储在其中的 unModifiableMap。
java - 克隆/复制不可修改的列表
除了手动遍历和将内容放入新数组之外,我还有其他选择来修改不可修改的列表吗?
一些开发人员选择以这种方式构建 API,而不是克隆 ..
c - 表达式必须是可修改的值 (C)
快速提问:
我不断收到错误消息,即在第二个 for 循环中变量名“十进制”上的“表达式必须是可修改的值”。
为什么会这样,我该如何解决?
谢谢!
java - 选择数据结构的困惑
我想创建一个Map<Long, Enum< ? extends SomeInterface>
. 哪个对我来说是最好的选择?
我试过这个
但它给出了错误“无法转换Map<Object,Object>
为Map<Long,Enum<? extends SomeEnum>[]>
”。我是新来的。请帮忙!
我需要不可修改的问题 ID 映射到相应的可能答案值。可能的答案是枚举
可能的答案是这样包装的:
java - 如何在 fastutil 中创建只读集合?
在标准库中,我们有类似的方法Collections#unmodifiableCollection()
在 fastutil 中找不到相同的类型集合。请提示!
java - 通用不可修改列表
我写:
但我得到了错误:
集合中的 unmodifiableList 不能应用于 (X[])
如何创建通用的不可修改列表?
java - 如何使用反射使 Java Bean 的可变字段在运行时不可变
我从具有可变映射对象作为字段的库中获取一些 Java 对象。我需要一种方法,通过将地图对象包装在 Collections.unmodifiableMap() 方法中,使这些对象字段在运行时只读。我已经使用 Java Reflection API 尝试了以下方法,但我一直坚持从现场获取实际的地图实例:
编辑------------------------------------------------- -------------------------------------------------- -------------------------- 我编写了一个不可变的 Date 类,它将包装一个 java.util.Date 对象并禁用所有可变操作. 使用这个包装器,我可以获得类似于 Collections.unmodifiableCollection() 的功能。
java - 具有 java 不可修改列表实现和 createAndAdd 之类的方法的库?
我想做类似的事情:
我已经实现了自己的解决方案,但现在我意识到我想在其他公司开设这个课程,在那里我无法重用我自己的解决方案,现在我正在考虑这是否存在于我可以使用的任何开源库中。
对于像 subList 这样的方法和其他集合(如不可修改的 Maps、Sets 等)也有同样的好处。
此致
java - How does Collections.unmodifiableList (Java 8 SE) get modified when making a new ArrayList from it?
I have a getter that returns an unmodifiable list, as such:
I am calling this getter as such:
Then I pass this list to another method that modifies the list as such:
where addToAdvisoryList(Advisory advisory) is:
After running these code, the original product list is modified. Can someone please explain what exactly happened? and what can be done to avoid modifying an unmodifiable list?