添加新的类变量java+;不编辑类的getter/setter方法
有没有办法在java中创建新的类变量或方法而不编辑java类 例如: 我有班主任添加新的类变量java+;不编辑类的getter/setter方法,java,Java,有没有办法在java中创建新的类变量或方法而不编辑java类 例如: 我有班主任 public class Person { private String name; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; }
public class Person {
private String name;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
在主要的I类过程中,如下所示:
Person personData = new Person();
personData.setName("My Name");
personData.setAddress("Address");
List<Person> person = new ArrayList<Person>();
person.add(personData);
Person personData=new Person();
personData.setName(“我的名字”);
personData.setAddress(“地址”);
List person=new ArrayList();
person.add(personData);
我想在列表中添加新的person变量
并具有setNo()代码>和getNo()代码>
因此,列表索引[0]让person具有属性No、Name和Address,而不首先编辑类person。在Java中,如果不更改类源代码,就无法向类添加方法
唯一的可能是从这个类中进行扩展(通过创建从Person继承的子类),或者创建一个包含Person对象的全新类
第一个概念叫做继承;第二篇是作文。例如,您可以找到关于“一对另一”的讨论
但本质上,答案是:退一步,读一本关于Java的好书。我可能会创建另一个扩展Person的类
import java.util.ArrayList;
import java.util.List;
public class PersonNo extends Person {
public static void main(String[] args) {
PersonNo personData = new PersonNo();
personData.setName("My Name");
personData.setAddress("Address");
List<PersonNo> person = new ArrayList<>();
person.add(personData);
}
public void setNo(int n) {
this.no = n;
}
public int getNo() {
return this.no;
}
private int no;
}
import java.util.ArrayList;
导入java.util.List;
公共类PersonNo扩展Person{
公共静态void main(字符串[]args){
PersonNo personData=新PersonNo();
personData.setName(“我的名字”);
personData.setAddress(“地址”);
List person=new ArrayList();
person.add(personData);
}
公共无效设置编号(int n){
这个。no=n;
}
公共int getNo(){
退回这个。否;
}
私人互联网号码;
}
这需要您将列表类型更改为“PersonNo”并添加“PersonNo”,但它将为您提供所需的功能。如果您使用“Person”创建列表,您可以添加“PersonNo”,但除非您将“Person”强制转换为(PersonNo),否则您将没有setNo/getNo。您无法获取/设置不存在的属性(No
)。Java是强类型的,这与此想法背道而驰。这个“No”属性是什么?你没有举例说明为什么你认为你需要这样的财产。也许有另一种方法可以实现您想要的功能,我在js库中集成了分页功能,在js中集成了java。。它只接受响应json列表,即使我的json响应中有许多属性。。我不知道为什么在分页中他们没有列表,只有开始、结束、当前页面和项目列表(来自java响应的列表),这就是为什么我不想编辑js,分页java,我不想列表中的对象没有类变量前者称为“继承”,后者称为“组合”,请参阅。@Andreas感谢您的想法,在我的回答中补充了这一点。