小编Neo*_*Neo的帖子

Java 8 Streams peek api

我尝试了以下Java 8代码片段peek.

List<String> list = Arrays.asList("Bender", "Fry", "Leela");
list.stream().peek(System.out::println);
Run Code Online (Sandbox Code Playgroud)

但是控制台上没有打印出任何内容.如果我这样做:

list.stream().peek(System.out::println).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

我看到以下内容同时输出了peek和foreach调用.

Bender
Bender
Fry
Fry
Leela
Leela
Run Code Online (Sandbox Code Playgroud)

两者foreachpeek接受一个 (Consumer<? super T> action) 为什么输出不同?

java java-8

31
推荐指数
3
解决办法
2万
查看次数

更改Xcode DerivedData位置的命令行选项

我知道DerivedData使用Xcode 更改位置的方法(首选项->位置-> DerivedData ..)。

但是,我要构建的Mac位于仅ssh访问权限的远程位置。我想建立一个特定的项目,并在其中保留DerivedData相对于该项目的位置。

每当我使用构建项目时xcodebuild,文件最终都会在下生成,/Users/builduser/Library/Developer/Xcode/DerivedData但是我希望它们在$ PROJECT / target / DerivedData下

相当于通过XCode可以更改DerivedData位置设置的命令行是什么?

xcode xcodebuild

5
推荐指数
1
解决办法
4755
查看次数

Spring Wiring 泛型类型的动态 bean

使用 Spring 5.0.3 使用BeanDefinitionRegistryPostProcessor. 代码如下:

class MyBDRRPP implements BeanDefinitionRegistryPostProcessor {

   public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
     // values - hardcoded for now
     List<String> values = Arrays.asList("1", "22", "333");
     registry.registerBeanDefinition("myDynamicBean", 
        BeanDefinitionBuilder.genericBeanDefinition(List.class, () -> values);
   }
}

// Register MyBDRRPP with ApplicationContext - not shown here

// Consumer of the dynamic bean
class MyConsumer {

   MyConsumer(@Qualifier("myDynamicBean") List<String> data) {
      // do something with data
   }
}
Run Code Online (Sandbox Code Playgroud)

当 MyConsumer 类连接时,我收到此异常

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.util.List<java.lang.String>' available: …

java generics spring autowired

4
推荐指数
1
解决办法
1551
查看次数

Jackson 序列化,包括 Map 的空值

我有以下要使用 Jackson 2.9.x 序列化的 POJO

static class MyData {
  public Map<String, MyInnerData> members;
}
static class MyInnerData {
  public Object parameters;
  public boolean isPresent;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用以下示例代码填充数据,如下所示:

Map<String, Object> nodeMap = new LinkedHashMap<>();
nodeMap.put("key-one", "val1");
nodeMap.put("key-null", null);
nodeMap.put("key-two", "val2");
Map<String, Object> child1 = new LinkedHashMap<>();
child1.put("c1", "v1");child1.put("c2", null);
nodeMap.put("list", child1);

MyInnerData innerData1 = new MyInnerData();
innerData1.parameters = nodeMap;
innerData1.isPresent = true;
MyData myData = new MyData();
myData.members = new LinkedHashMap<>();
myData.members.put("data1", innerData1);

// serialize the data
ObjectMapper mapper = new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); …
Run Code Online (Sandbox Code Playgroud)

java serialization json jackson2

3
推荐指数
1
解决办法
4043
查看次数

詹金斯管道从Yaml中读取

如何从一个阶段读取的YAML文件中读取数据,并在另一阶段或该阶段之外使用它?

pipeline {
  agent any
  environment {
    MY_ENV_VAR1 = 'VALUE1'
  }
  parameters {
    string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: 'Environment to deploy on')
    booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: 'Debug the build')
  }
  stages {
    stage('Stage1') {
      steps {
        script {
          def datas = readYaml file: 'release.yml'
          echo "Got version as ${datas.version} "
        }
        echo "Deploying to ${params.DEPLOY_ENV} with debug=${params.DEBUG_BUILD}"
      }
    }
    stage('Stage 2') {
      steps {
        sh 'run.sh datas.version'
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想访问其中Stage 2提取的$ {datas.version}内部步骤Stage 1。 …

jenkins jenkins-pipeline

2
推荐指数
2
解决办法
9729
查看次数

Objective-C:存储在NSDictionary中的对象的潜在泄漏

我是Objective-C的新手.XCode突出显示以下代码作为问题. _myCookies是我班级的私有变量,我存储收到的cookie.

@implementation MessageSender {
  NSArray *_myCookies;
}
...
// Socket open callback
- (void) gotData:(MySocket *) socket {
  NSDictionary *responseHeaders = (__bridge NSDictionary*)CFHTTPMessageCopyAllHeaderFields(socket.HTTPHeaders);
  _myCookies = [NSHTTPCookie cookiesWithResponseHeaderFields:responseHeaders
                                                         forURL:[NSURL URLWithString:@""]];

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

突出的问题是:

  1. 调用函数'CFHTTPMessageCopyAllHeaderFields'返回一个带有+1保留计数的Core Foundation对象
  2. 泄漏的对象:分配并存储到'responseHeaders'中的对象稍后在此执行路径中未引用,并且保留计数为+1

我该如何解决这个问题?我正在使用ARC.我想将cookie存储在我的类中,以便稍后在发送请求时使用它们,但是我想让套接字处理它的responseHeaders.

objective-c ios

1
推荐指数
1
解决办法
1145
查看次数