我并不完全确定能够解决这个问题的标题是什么.这看起来像Java一样,但它只是使用Guava Collections2.transform.变换器在迭代"结果"期间提供完全不同的对象实例,然后在"结果"最终返回时包含的内容.因此,'setDateStamp()'实际上看起来并不起作用,因为它被设置在似乎刚出现并像鬼一样消失的实例上.
当我实现Collections2.transform()方法的逻辑等价物(注释掉代码)时,我得到了我期望的结果.我已经介绍了谷歌代码,断点和所有内容,并且没有通过除基础函数之外的任何方法创建新实例的位置.
我得到了他们的实现正在做的事情:根据需要进行转换.不复杂.那么为什么地狱不起作用呢?
这是有问题的代码以及一些调试
@Component
public class SurveyResultToQuestionResults implements Function<SurveyResult, Collection<QuestionResult>> {
@Autowired
private QuestionResultDtoToDomain dtoToDomain;
@Override
public Collection<QuestionResult> apply(@Nullable SurveyResult input) {
Collection<QuestionResult> results = new HashSet<QuestionResult>();
if (input != null) {
// substitute this
// for (QuestionResultDto dto : input.getResults()) {
// QuestionResult result = dtoToDomain.apply(dto);
// results.add(result);
// }
// for this
results = Collections2.transform(input.getResults(), dtoToDomain);
for (QuestionResult result : results) {
long time = input.getSurveyTime().getTime();
Timestamp dateStamp = new Timestamp(time);
result.setDateStamp(dateStamp);
}
}
return results; …
Run Code Online (Sandbox Code Playgroud) 情况很简单:
这是我的本地环境:
cbongiorno at wa-cbongiorno-mba in /Volumes/dev/sterling/java-user-login-service on master [!$]
$ gradle -v
------------------------------------------------------------
Gradle 4.0
------------------------------------------------------------
Build time: 2017-06-14 15:11:08 UTC
Revision: 316546a5fcb4e2dfe1d6aa0b73a4e09e8cecb5a5
Groovy: 2.4.11
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_131 (Oracle Corporation 25.131-b11)
OS: Mac OS X 10.12.5 x86_64
Run Code Online (Sandbox Code Playgroud)
这是我运行的构建命令:
gradle compileJava check assemble && history | tail -3
Run Code Online (Sandbox Code Playgroud)
结果如下:
BUILD SUCCESSFUL in 3m 3s
38 actionable tasks: 38 executed
1496 gradle clean
1497 gradle compileJava check assemble && history | tail …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用spring boot进行测试时禁用Redis.我已禁用我的配置,但自动配置创建了默认连接并失败,因为它无法连接到不存在的服务.为了测试,我满足于使用基本的内存缓存或无操作缓存.这也行不通.这是我尝试过的:
根据这个问题,我将配置添加到我的测试应用程序属性中
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
Run Code Online (Sandbox Code Playgroud)
但.这让我更进一步.但最终我得到了一个NoSuchBeanDefinitionException
redisTemplate
- 这是因为redisReferenceResolver
试图看起来如此.
现在我看的调试器,它试图来滋润bean是:
org.springframework.data.redis.core.convert.ReferenceResolverImpl
这是哪里来的spring-data-redis:1.8.0.RELEASE
是从这种相关性来:compile('org.springframework.boot:spring-boot-starter-data-redis')
.我承认,bean名称有点误导.它实际解析的类型不是
对redis的唯一其他引用是在我们的hibernate支持中.
有人可以解释如何关闭它进行测试吗?
我正在尝试在不克隆的情况下获取特定提交哈希的 git 存储库!每个示例都想克隆整个存储库。这是有道理的,但我想要的存储库很大,我需要它留下一个小的足迹,因为它与 Docker 镜像一起使用。
提交哈希在 URL 中 - 或者wget
可以curl
/应该递归获取,但我有一种感觉 github 正在阻止它,因为我得到的只是robots.txt
回购和提交:
https://github.com/phalcon/cphalcon/tree/1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
我最好的尝试错误:
git fetch https://github.com/phalcon/cphalcon/ 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
error: Server does not allow request for unadvertised object 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
Run Code Online (Sandbox Code Playgroud)
更新
使用克隆的答案建议并不能回答问题。我可以克隆/结帐没有问题。尝试在本地没有整个存储库的情况下执行此操作
我试图在groovy中这样做
def results = new File(someDirectory).listFiles { it.name.startsWith 'foo'}
Run Code Online (Sandbox Code Playgroud)
但是,我得到了可以理解的错误:
groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.io.File#listFiles.
Cannot resolve which method to invoke for [class change$_getRollback_closure1] due to overlapping prototypes between:
[interface java.io.FileFilter]
[interface java.io.FilenameFilter]
Run Code Online (Sandbox Code Playgroud)
我如何告诉它使用FileFilter?
我最后写了一些简单的java风格:
File[] files = someDir.listFiles( new FileFilter(){
@Override
boolean accept(File pathname) {
return pathname.name.startsWith("foo")
}
})
Run Code Online (Sandbox Code Playgroud) 很简单:
我拥有的:'["a","b","c"]'
我想要的是:
{
"1":"a",
"2":"b",
"3":"c"
}
Run Code Online (Sandbox Code Playgroud)
我正在做什么。
echo '["a","b","c"]' | jq '. | map({(index(.)) : (.)})'
Run Code Online (Sandbox Code Playgroud)
我得到的结果(它似乎在连续较小的数组上运行):
echo '["a","b","c"]' | jq '. | map(index((.)))'
[
0,
0,
0
]
Run Code Online (Sandbox Code Playgroud) 所以,我有这个字符串:
JobDefinition://apps/ess/scm/productHub/itemImport/ItemImportSchedulingJobDef
我想把它改造成:
/a/e/s/p/i/ItemImportSchedulingJobDef
当我使用时:sed -E 's|/([a-z]{1})|\1|g'
我刚刚得到
JobDefinition:/appsessscmproductHubitemImport/ItemImportSchedulingJobDef
我正在使用 sed,但我认为这是一个一般的正则表达式问题。
它基本上是一个命名空间,而且很长,所以我试图维护命名空间和最终唯一标识符的某些内容
它与完全限定类名的 spring 压缩日志记录非常相似(我的灵感)
与大多数日志一样,我们的日志有点冗长,大部分噪声包括执行日志记录的类的fqcn.
我想让它只记录每个包/子包的第一个字母,直到它进入类.
例
com.mycompany.client.magensa.MockMagensaClient
Run Code Online (Sandbox Code Playgroud)
在正常情况下,这将记录为:
c.v.c.m.MockMagensaClient
Run Code Online (Sandbox Code Playgroud)
我显然可以写一个自定义记录器,但我确信有一个我已经可以使用.因为我甚至不知道这种风格是什么,所以我不知所措.
任何人只想说:"哦,你在看......你可以找到它......"?
我正在编写一些 python 代码,并且正在实现一种我已经用多种语言反复完成的模式。我一直认为这是某种功能范例,并且可以在功能上实现(不使用循环for
),但我没有看到它。Map
获取一个系列并返回一个新系列。Reduce
获取一系列结果并将其简化为单个结果。这两者都不是。
下面这个函数的想法是对单个字符串重复应用转换。在这种情况下:
def to_template(message):
mappers = [
('[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', '{.uuid}'),
(' [0-9]{5,9}.', ' {.request_id}.')
]
result = message
for pattern, replacement in mappers:
result = re.sub(pattern, replacement, result)
return result
Run Code Online (Sandbox Code Playgroud)
问题:
我试图将带有 sed 替换的文件传递给 sed,它忽略了我给它的部分路径:
首先,让我们从一个简单的断言开始:
test -f workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed && echo "exists"
exists
Run Code Online (Sandbox Code Playgroud)
是的,文件存在。现在,问题是:
sed -E -n -f /Users/cbongior/dev/omc/workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed /Users/cbongior/dev/omc/workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/data.psv
sed: orkdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed: No such file or directory
Run Code Online (Sandbox Code Playgroud)
它会丢弃o
in之前的所有内容workdir
!
我尝试过一个新的外壳,没有扩展
env -i /opt/brew/bin/bash
bash-5.2$ sed -n -E -f "/Users/cbongior/dev/omc/workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed" "/Users/cbongior/dev/omc/workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/data.psv"
sed: orkdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我尝试过旧版本的 bash:
test -f workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed && echo "exists"
exists
Run Code Online (Sandbox Code Playgroud)
我已经尝试过zsh
sed -E -n -f /Users/cbongior/dev/omc/workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed /Users/cbongior/dev/omc/workdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/data.psv
sed: orkdir/2023-08-03/2023-07-21-01-30-19_2023-07-31-23-59-58/templates.sed: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我也尝试过gsed
env -i /opt/brew/bin/bash
bash-5.2$ sed …
Run Code Online (Sandbox Code Playgroud)