js 赋值给java_JS的赋值与深浅拷贝实例
时间: 2024-03-26 18:38:23 浏览: 70
假设有以下的js对象:
```
let obj1 = {
name: 'Tom',
age: 18,
hobbies: ['reading', 'running']
}
```
现在我们要将obj1赋值给一个java中的对象java_JS,并且要求java_JS的属性值与obj1相同。可以这样实现:
```
public class Java_JS {
private String name;
private Integer age;
private List<String> hobbies;
// 构造函数
public Java_JS(String name, Integer age, List<String> hobbies) {
this.name = name;
this.age = age;
this.hobbies = hobbies;
}
// getter和setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
}
// 在js中
let java_JS = new Java_JS(obj1.name, obj1.age, obj1.hobbies.slice());
```
这里我们使用了`slice()`方法来进行浅拷贝,保证了java_JS中hobbies属性值的引用不与obj1中的相同。
如果我们要进行深拷贝,可以使用`JSON.parse(JSON.stringify(obj1))`来实现。但需要注意的是,如果obj1中存在函数、正则表达式等特殊数据类型,会在转换过程中丢失。
阅读全文