小编Wes*_*Gun的帖子

当isPresent()获取属性时可选<T>,当为null时为null; Java 8中的功能风格

当我从DB检索Student实体时,存储库返回一个可空的Optional<Student>.它有一个birthdate领域.

Optional<Student> getStudentById(String id);
Run Code Online (Sandbox Code Playgroud)

那么,我怎么能用功能样式写一个单行来获取它的生日,当它为null时返回null,何时不返回日期?

我现在:

Date birthdate = studentRepository.getStudentById(id).isPresent() ? 
                    studentRepository.getStudentById(id).get().getBirthdate() : null;
Run Code Online (Sandbox Code Playgroud)

但我认为使用isPresent()和三元是丑陋的; 它只是if/else.

而且,这不起作用:

Date birthdate = studentRepository.getStudentById(id).get().getBirthdate().orElse(null); // this does not work because orElse() cannot chain with getBirthdate()
Run Code Online (Sandbox Code Playgroud)

我是Java 8.

我不认为没有任何开销是可能的,但我愿意接受建议.

java spring functional-programming optional java-8

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

paramiko - "不是有效的OpenSSH/RSA/...私钥"错误

当我使用时paramiko 2.4.0,我继续收到这样的错误:

SSHException: not a valid OPENSSH private key file
Run Code Online (Sandbox Code Playgroud)

虽然我可以使用钥匙到ssh机器,并且可以访问遥控器.

密钥由以下方式生成:

ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

然后我将公钥复制到远程机器:(路径也可以是私钥,它是一样的)

ssh-copy-id -i /path/to/public/key root@remote_host
Run Code Online (Sandbox Code Playgroud)

为什么?

paramiko ssh-keys

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

scala - 在方法中定义的 Array("one", "two").mkString(":") 返回 WrappedArray,而不是 String

scala>   def joinWith(separator: String, values: String*): String = {
     |     Array(values).mkString(separator)
     |   }
joinWith: (separator: String, values: String*)String

scala> joinWith(":", "one", "two")
res0: String = WrappedArray(one, two)   // shouldn't we get a String here?

scala> Array("one", "two").mkString(":")
res1: String = one:two                  // this works as expected but only like this

scala>
Run Code Online (Sandbox Code Playgroud)

我期待一个String返回,但我看到一个WrappedArray. 为什么?

如果我想返回一个字符串,应该如何定义函数?

methods scala

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

Apache Camel 中 setHeader 和 setProperty 的用途是什么?

抱歉,我是骆驼新手。查看这两种方法的文档,没有任何有意义的指示表明您何时可能想要使用这些方法。

例如 setProperty() 参见https://camel.apache.org/components/3.19.x/eips/setProperty-eip.html

除了设置和删除它们之外,我没有看到任何属性方法。重点是什么?标题也是如此,您可以设置它们,但不知道如何获取它们。

apache-camel

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

如何将我的模块导入 python 控制台?

在我的 DigitalOcean droplet 中,我以这种方式安装了我的 python3:

sudo apt-get install make gcc  
wget https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tgz  
tar xf Python-3.4.0.tgz -C /usr/local/src/  
cd /usr/local/src/Python-3.4.0/  
./configure --prefix=/usr/local/python3.4  
make  
make install  
ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3  
Run Code Online (Sandbox Code Playgroud)

当我将名为 down.py 的 python 文件上传到带有 putty 的位置时:

/usr/local/python3.4/lib/python3.4/down.py  
Run Code Online (Sandbox Code Playgroud)

为什么不能用命令导入模块:

import down
Run Code Online (Sandbox Code Playgroud)

或者

import down.py
Run Code Online (Sandbox Code Playgroud)

或者

import /usr/local/python3.4/lib/python3.4/down.py ?
Run Code Online (Sandbox Code Playgroud)

python import digital-ocean

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

Django-在模板列表中获取元素索引

我在模板中有一个列表用于迭代,并且在进行迭代时,我想在此列表中打印其索引。现在,我正在使用list.index(element),但这是行不通的。

我做:

<tbody>
   {% for core in cores %}
   <tr>
       <td>{{cores.index(core)}}</td>     <!-- this line doesn't work -->
       <td>{{core.user}}</td>             <!-- this line works. -->
Run Code Online (Sandbox Code Playgroud)

这样不是吗?我该怎么办for i in length(cores)

python django django-templates

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

如何设置JFrame的最小大小,以阻止用户将其调整为较小?

我有一个JFrame不能小于特定尺寸,或元素不能正确布局.

我试图setMinimumSize()覆盖getMinimumSize()这个框架的方法,但我仍然可以将框架调整为更小.

所以,我一定要听界的变化,我的componentListener时候componentResized(),如果它的体积更小,以将其设置回正常大小setBounds()

java swing jframe

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