给定一个带有 final 字段的简单类,例如 a String(参见下面的示例)或 Spring 依赖项,使用 Java 14 记录使其更简洁并可能删除 Lombok 等注释处理器是个好主意吗?
根据JEP描述记录,“记录使语义声明成为其数据的简单、透明的持有者”。
显然,只有 final 字段的泛型类并不是其数据的透明持有者,并且在使用记录时,其final变量是公开的,这可能是不可取的。但是,在许多情况下,这可能不是主要问题。
因此,这是否“足以”将其视为对该语言功能的“滥用”?或者还有其他不那么明显的缺点吗?
@RequiredArgsConstructor // or an explicit constructor when not using lombok
class AudienceValidator implements OAuth2TokenValidator<Jwt> {
private final String audience;
public OAuth2TokenValidatorResult validate(Jwt jwt) {
// validate
}
}
record AudienceValidator(String audience) implements OAuth2TokenValidator<Jwt> {
public OAuth2TokenValidatorResult validate(Jwt jwt) {
// validate
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个text.txt包含两行的文件.
first line
second line
Run Code Online (Sandbox Code Playgroud)
我试图使用以下循环循环bash:
while read -r LINE || [[ -n "$LINE" ]]; do
# sed -i 'some command' somefile
echo "echo something"
echo "$LINE"
sh call_other_script.sh
if ! sh some_complex_script.sh ; then
echo "operation failed"
fi
done <file.txt
Run Code Online (Sandbox Code Playgroud)
当some_complex_script.sh 仅调用第一行时,处理,但在注释时,所有两行都被处理.
some_complex_script.sh做各种各样的事情,比如启动进程,sqlplus,启动WildFly等.
./bin/call_some_script.sh | tee $SOME_LOGFILE &
wait
...
sqlplus $ORACLE_USER/$ORACLE_PWD@$DB<<EOF
whenever sqlerror exit 1;
whenever oserror exit 2;
INSERT INTO TABLE ....
COMMIT;
quit;
EOF
...
nohup $SERVER_DIR/bin/standalone.sh -c $WILDFLY_PROFILE …Run Code Online (Sandbox Code Playgroud) foo鉴于以下剧本,在处理程序中使用虚拟角色调用 include_role 不起作用。根据文档:
处理程序是任务列表,与常规任务没有任何区别,它们由全局唯一名称引用,并由通知程序通知。
include_role但是,在使用(和 Ansible 2.4.1)时它似乎不起作用。是否有任何解决方法或其他语法可以使其运行?
- name: test roles
hosts: localhost
gather_facts: false
tasks:
- debug:
msg: "call handler"
changed_when: true
notify: "bar"
handlers:
- name: "bar handler"
include_role:
name: foo
listen: "bar"
Run Code Online (Sandbox Code Playgroud)
输出:
[WARNING]: Unable to parse /etc/ansible/hosts as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: Could not match supplied host pattern, ignoring: all
[WARNING]: provided hosts list is empty, only localhost is available
[WARNING]: Ignoring …Run Code Online (Sandbox Code Playgroud) 我正在尝试获取 kube-contexts 列表(并过滤 gke 集群),并使用一些工具最终得到:
kubectl config get-contexts | tr -s ' ' | cut -d ' ' -f 2 | grep gke
Run Code Online (Sandbox Code Playgroud)
输出:
gke_dev-redacted
gke_prod-redacted
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来做到这一点(这不依赖于命令输出不使用制表符,而是使用多个空格的事实)。该命令不支持 yaml 或 json 输出:
--output yaml is not available in kubectl config get-contexts; resetting to default output format
Run Code Online (Sandbox Code Playgroud) 我有一个JAX-RS服务,可以在本地使用wildfly-swarm 1.0.0.Beta8,但是当我在远程机器上启动它时,我得到以下异常:
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
at org.wildfly.extension.undertow.ListenerService.start(ListenerService.java:142)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.SocketException: Protocol family unavailable
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:190)
at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:243)
at org.wildfly.extension.undertow.HttpListenerService.startListening(HttpListenerService.java:126)
at org.wildfly.extension.undertow.ListenerService.start(ListenerService.java:138)
... 5 more
Run Code Online (Sandbox Code Playgroud)
此外,当我将应用程序部署到完整的野生动物10时,它的工作正常.
我用谷歌搜索"协议族不可用"例外可能与只有IPv6地址的机器有关,而java默认为IPv4,但这台机器确实有一个IPv4地址.
我不知道我可能做错了什么.
有什么建议?
我试图弄清楚如何通过“if”语句向 JTable 添加逻辑,该语句检查是否选择了任何行。我知道如何检查是否选择了特定行,但我似乎无法弄清楚如何检查所有行。
if(tbl.isRowSelected(0)){
Run Code Online (Sandbox Code Playgroud)
显然,这是检查特定行。
我也试过类似的东西
if(tbl.isRowSelected(0-2000)){
Run Code Online (Sandbox Code Playgroud)
这不起作用,我也不希望它起作用。
这样做的原因是我正在设置表格,以便当用户单击一行然后点击“编辑”按钮时,将出现第二个表格,其中包含与他们选择的行相关的更多数据。(这里在哈希映射中使用 2D 数组变得复杂,但我首先需要解决这个简单的问题)。
我在这里先向您的帮助表示感谢!
java ×2
ansible ×1
bash ×1
java-14 ×1
java-record ×1
jenkins ×1
jtable ×1
kubectl ×1
kubernetes ×1
shell ×1
swing ×1
wildfly ×1
wildfly-10 ×1