getInstance()
Java中的目的是什么?
在我的研究过程中,我一直在阅读,这getInstance()
有助于实现Singleton设计模式(这意味着整个程序中只有一个实例符合我的理解).但我不能只使用静态?这不是静止的全部意义吗?
如果我只是有静态方法和字段,它与使用getInstance()
有何不同?是否存在静态的"范围"?例如,每个方法或类一个实例?
如果它们不同,在什么情况下我会选择getInstance()
使用静态?
如果问题不清楚,我很抱歉,我确信我遗漏了一些有关主题的内容,我只是无法弄清楚是什么.
感谢您提供任何建议.
为什么在使用现有变量键入新变量时输入全部或全部?
例如,假设我有一个data
类型为的变量List<Map<String, ArrayList<String>>>
,我想将其值传递给tempData
.为什么在决定tempData
我的类型时我是否仅限于List
或List<Map<String, ArrayList<String>>>
?
如果我只想与某个"级别"进行交互data
,比如Map
级别,我该如何跳到那里?比如为什么我不能List<Map> tempData = data
?
我搜索过我的教科书和这个网站,但我无法找到解释原因的地方.如果我们被允许"部分打字",是否会出现问题?
我知道我可以强烈打字tempData
,但我很好奇为什么Java有一个全有或全无的方法.
为什么会发生以下情况?两者都不应该有效吗?
List<String> items = data;
for( String id : items ) {
List<String> otherItems = otherData;
// 1. addAll()
//Causes ConcurrentModificationException
items.addAll(otherItems);
// 2. .add()
//Doesn't cause exceptions
for( String otherId : otherItems ) {
items.add(otherId);
}
}
Run Code Online (Sandbox Code Playgroud)
是因为add()
添加了集合Items,还是addAll()
创建了一个新的集合,从而将Items修改为List的另一个实例?
编辑
items
并otherItems
具体类型ArrayList<String>
.
启动 NiFi 时,它的默认根上下文是 nifi,因此它的 URL 如下所示:
http://localhost:8080/nifi/
Run Code Online (Sandbox Code Playgroud)
我需要能够支持以下 URL:
http://localhost:8080/custom/nifi/
Run Code Online (Sandbox Code Playgroud)
有没有办法在 NiFi 中进行这种配置?如果需要,我可以进行源代码修改。