我来自JavaScript和Node.js背景,尽管我拥有大部分的OOP基础知识,但还是有许多我不太了解的Java基础知识。例如,我正在做a Spring tutorial,并立即遇到了一些令我困惑的语法。为什么在Java中的类实例中返回一个类实例?
第一次演练是一个hello world应用程序。首先,我们建立了一个问候类:
public class Greeting {
private final long id;
private final String content;
public Greeting(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
首先,我不明白为什么他们定义的类本身内部的类的实例开始。为什么不为公共课添加参数?无论如何,那不是我的问题。当我得到更多的损失是,当我们做一个问候控制器:
package hello;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
// This ensures that HTTP requests to /greeting are mapped to the greeting() method.
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
在这个文件时,我就拿到public Greeting greeting
创建问候语类的新实例,但它只有一个参数时,构造函数有两个,long id
和String content
。接下来,他们返回该类的另一个实例,这次使用与构造函数结构相匹配的参数。
这是为什么?
_define类中的类的一个实例本身_你在哪里看到这个?另外,如果这不是您的问题或与此相关,请将其删除。 –
_'''Public Greeting greeting'创建Greeting类的新实例_否,它不。这只是一个返回类型为“Greeting”的方法。 –
“但它只有一个参数,当构造函数有两个” - 不是另一个参数“String.format(...)”? (看起来像逗号被用来代替该行上的点) – BretC