对于下面的不完整的类代码,下面表达式中,( )可以加到构造方法中的横线处。 public class Person { String name,department; public Person(String n){ name=n; } public Person(String n,String d){ _________________ department=d; } public void print(){ System.out.println(this.name+"-"+this.department); } public static void main(String[] args) { Person p1 = new Person("马云"); p1.print(); Person p2 = new Person("马化腾","总裁办"); p2.print(); } } A)person(n) B)this(person(n)) C)this(n) D)this(n,a);
时间: 2023-12-10 10:42:25 浏览: 18
答案是 D)this(n,a);。在第二个构造方法中,我们需要将传递的参数n和d分别赋值给成员变量name和department,因此需要调用另一个构造方法Person(String n),并传递参数n。同时,我们也需要使用当前构造方法中的参数d来初始化department。因此,正确的代码应该是:
```
public Person(String n,String d){
this(n);
department=d;
}
```
相关问题
SpringAop场景中我有一个字符串变量,我想将其加到execution表达式中
在 Spring AOP 中,你可以使用 `execution` 表达式来匹配切点,其中 `execution` 表达式用于描述方法的签名和返回类型。如果你想将一个字符串类型的变量添加到 `execution` 表达式中,你可以使用字符串连接运算符(+)来实现。
假设你有一个名为 `str` 的字符串变量,你可以使用以下代码将其添加到 `execution` 表达式中:
```java
String expression = "execution(* com.example.service.*." + str + "(..))";
```
在上面的代码中,`com.example.service.*` 是要匹配的包名,`*.` 是匹配任意类名,`(..)` 是匹配任意参数的方法签名。`+ str +` 将会把 `str` 的内容添加到 `execution` 表达式的末尾。
你也可以使用 `StringBuilder` 类来构建 `execution` 表达式。例如:
```java
StringBuilder sb = new StringBuilder();
sb.append("execution(* com.example.service.*.");
sb.append(str);
sb.append("(..))");
String expression = sb.toString();
```
这将创建一个包含 `execution` 表达式的字符串,其中 `str` 的内容被添加到了表达式中。
springboot在有参构造方法类中使用@value注解取值
Spring Boot是一个基于Spring框架的快速开发平台,可以快速构建高效、可靠、可扩展的Web应用程序。@Value注解是Spring框架中的一个重要特性,可以用于给类属性赋值。当用@Value注解为有参构造方法类的属性赋值时,Spring Boot会根据注解中的表达式来从配置文件或命令行参数中取值,并将取到的值注入到类属性中。
在使用@Value注解给有参构造方法类的属性赋值的时候,需要按照一定的格式书写注解的表达式,格式为:${属性名}。其中,属性名为配置文件中定义的属性名,例如:application.properties中有一个属性名为myValue,那么给类属性myValue注入值的注解表达式应该为:@Value("${myValue}")。
在Java类中,我们可以使用@Value注解给单个属性赋值,也可以在构造方法中使用@Value注解来给类的所有属性赋值。使用@Value注解给有参构造方法类的属性赋值,需要在构造方法上方加上@Autowired注解,表示使用Spring自动装配该类。然后给构造方法的参数上添加@Value注解,注解中的参数为配置文件中的属性名,例如:@Value("${myValue}") String myValue。
总之,使用@Value注解可以方便地将配置文件中的属性值注入到Java类中,从而让我们可以灵活地控制应用程序的行为。Spring Boot是一个非常强大的框架,其中的@Value注解就是其强大的一部分。