小编my-*_*my-的帖子

如何在jshell脚本中获取用户输入?

问题:

如何在jshell 脚本中获取用户输入?或者我做错了什么?

注意:不是在寻找如何将参数传递给 jshell script

例子:

例如脚本hello.java

Scanner in = new Scanner(System.in);

System.out.print("Enter number n1: ");
int n1 = in.nextInt();
System.out.print("Enter number n2: ");
int n2 = in.nextInt();

System.out.println("n1 + n2 = "+ (n1 +n2));

/exit
Run Code Online (Sandbox Code Playgroud)

如果我在 jshell 中逐行输入它可以工作,但然后我运行jshell hello.java它就不行了。投掷java.util.NoSuchElementException

我得到的输出:

@myMint ~/Java $ jshell hello.java 
Enter number n1: |  java.util.NoSuchElementException thrown: 
|        at Scanner.throwFor (Scanner.java:858)
|        at Scanner.next (Scanner.java:1497)
|        at Scanner.nextInt (Scanner.java:2161)
|        at …
Run Code Online (Sandbox Code Playgroud)

java-9 jshell

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

R2DBC 和枚举 (PostgreSQL)

2020Enum年 8 月15 日更新:似乎在 6 月 16添加了支持。R2DBC 提交

H2DBC 是否支持 PostgreSQL 枚举?我检查了他们的git page但它没有提到任何关于它的内容。如果是这样,如何使用枚举(插入、选择)?
让我们说 PostgreSQL 枚举

CREATE TYPE mood AS ENUM ('UNKNOWN', 'HAPPY', 'SAD', ...);
Run Code Online (Sandbox Code Playgroud)

Java类

@Data
public class Person {
    private String name;
    private Mood mood;
    // ...

    enum Mood{ UNKNOWN, HAPPY, SAD, ...}
}
Run Code Online (Sandbox Code Playgroud)

我试过:

        // insert
        var person = ...;
        client.insert()
                .table("people")
                .using(person)
                .then()
                .subscribe(System.out::println);

        // select
        var query = "SELECT * FROM people";
        client.execute(query)
                .as(Person.class)
                .fetch().all() …
Run Code Online (Sandbox Code Playgroud)

postgresql enums spring-data spring-data-r2dbc r2dbc

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

在for循环中声明变量的优点和缺点?

在for循环中声明变量的优点和缺点是什么?我想改变我的讲师思想,或改变我的思想:讲师强迫我使用:

// Declare variables
int i;
...

for(i = 0; boolen expesion; update)   // Note i not declared here
Run Code Online (Sandbox Code Playgroud)

我喜欢做:

for(int i = 0; boolean expesion; update)   // Note i is declared here
Run Code Online (Sandbox Code Playgroud)

在考试中,这是我的方式的惩罚点..我试图通过告诉他说服他:

  • 我没有看到代码完成他的方式.
  • 它不是那么重要的变量,所以让它本地化是有意义的.
  • 在for循环中可能需要使用类型long变量.

他的答案是:"如果这里有很少的循环,你不需要反复宣布同一个变量".很难与讲师一起争论那么特别是你是一个来自foreng国家的一年级学生.但是int没有占用那么多内存加上java有一个垃圾收集器来清理内存..

所以,请帮助我说服他或我,并提出一个很好的论据.

java variables for-loop

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