小编use*_*547的帖子

将 Java 14 记录用于仅具有最终字段的泛型(非数据)类

给定一个带有 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)

java java-14 java-record

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

bash中的"允许"操作读取while循环

我有一个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)

bash shell jenkins

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

Ansible - 如何在处理程序中使用 include_role

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)

ansible

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

如何使用 cli 获取 kube 上下文列表

我正在尝试获取 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)

kubernetes kubectl

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

无法在wildfly-swarm上启动jax-rs服务

我有一个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地址.

我不知道我可能做错了什么.

有什么建议?

wildfly wildfly-10 wildfly-swarm

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

如果选择了任何行,则为 JTable

我试图弄清楚如何通过“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 swing jtable

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