package step2; import java.lang.reflect.Field; public class ReflectFieldEdit { public static void main(String[] args) { Student student = null; // ---------------------Begin------------------------ try { Class<?> clazz = Class.forName("step2.Student"); student = (Student) clazz.newInstance(); Field nameField = clazz.getDeclaredField("name"); Field schoolField = clazz.getDeclaredField("school"); nameField.setAccessible(true); schoolField.setAccessible(true); nameField.set(student, "李四"); schoolField.set(student, "清华大学"); } catch (Exception e) { e.printStackTrace(); } // ---------------------End------------------------ System.out.println(student); } }去除这段代码输出的!
时间: 2023-08-15 20:26:02 浏览: 72
Sure! 这段代码的输出结果是一个 `Student` 对象的字符串表示,如果想要去除末尾的 `!`,只需要修改 `Student` 类的 `toString()` 方法即可。比如可以将 `toString()` 方法中的 `return` 语句改为:
```
return "Student [name=" + name + ", age=" + age + ", school=" + school + "]";
```
这样就不会有末尾的 `!` 了。
相关问题
填空;利用反射,为对象的name属性赋值。 class Student{ private String name; private int age; public String toString(){ return "name is" + name +",age is" + "age"; } } import java.lang.reflect.*; public class Main { public static void main(String[] args) { Student p = new Student(); Class cla = ; Field nameField = cla.getDeclaredField("name"); nameField.setAccessible(true); ;//设置对象的姓名属性为Jack } }
填空处应该分别填入以下代码:
1. Student.class,用于获取 Student 类的 Class 对象。
2. nameField.set(p, "Jack"),用于为对象 p 的 name 属性赋值为 "Jack"。
完整代码如下所示:
```
class Student{
private String name;
private int age;
public String toString(){
return "name is" + name +",age is" + "age";
}
}
import java.lang.reflect.*;
public class Main {
public static void main(String[] args) throws Exception {
Student p = new Student();
Class cla = Student.class;
Field nameField = cla.getDeclaredField("name");
nameField.setAccessible(true);
nameField.set(p, "Jack");//设置对象的姓名属性为Jack
System.out.println(p);
}
}
```
import java.util.Arrays; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Type; import java.util.Scanner; import java.lang.Math; import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("本金:"); double cunkuan = sc.nextDouble(); double huoqi1nian = Math.round(cunkuan + cunkuan * 0.35); double huoqi2nain = Math.round(cunkuan+cunkuan * 0.35* 0.35); double dingqi1nian = Math.round(cunkuan * (1+1.50)); double dingqi2niqn = Math.round(cunkuan * (1+2.10)); System.out.println("活期一年本金总计:" + huoqi1nian); System.out.println("定期1年本经总计:" + dingqi1nian); System.out.println("活期2奶奶本经总计:" + huoqi2nain); System.out.println("定期2年本经总计:" + dingqi2niqn); } }错在哪里了
这段代码存在语法错误,需要进行修正:
1. 缺少类声明的结束符号 `}`;
2. `Math.round` 方法的参数需要为浮点数,但是在第 9 行和第 10 行的参数为整数,需要改为浮点数。
以下是修改后的代码:
```java
import java.util.Scanner;
import java.lang.Math;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("本金:");
double cunkuan = sc.nextDouble();
double huoqi1nian = Math.round(cunkuan + cunkuan * 0.35);
double huoqi2nain = Math.round(cunkuan + cunkuan * 0.35 * 0.35);
double dingqi1nian = Math.round(cunkuan * (1 + 0.015));
double dingqi2niqn = Math.round(cunkuan * (1 + 0.021));
System.out.println("活期一年本金总计:" + huoqi1nian);
System.out.println("定期1年本经总计:" + dingqi1nian);
System.out.println("活期2奶奶本经总计:" + huoqi2nain);
System.out.println("定期2年本经总计:" + dingqi2niqn);
}
}
```
注意,代码中的利率计算可能存在问题,可以根据实际情况进行调整。
阅读全文