我想为给定的类添加新的字段(变量)和封装方法.例如:类名Student没有任何字段如下:
public class Student implements Serializable{
}
Run Code Online (Sandbox Code Playgroud)
然后在我的应用程序中创建一个实例;
Student s=new Student();
Run Code Online (Sandbox Code Playgroud)
我想在运行时添加学生类不存在的新方法.例如:我想添加一个名为studentName,getStudentName()和setStudentName()方法的字段.
然后在运行时,学生对象将是这样的;
public class Student implements Serializable{
private String studentName;
public void setStudentName(..){}
public String getStudentName(){return ...;}
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,对象被写入文本文件,所有相同类型的对象都没有所有变量.因此,我只想添加必需的字段来节省内存.
有办法有办法吗?任何示例代码或链接?
编辑:或者我们可以创建一个类,并创建不存在的实例?
编辑2:谢谢你们所有人的回答,并得到了许多信息和想法.并改变了从你的建议到更好的道路的方式
为什么不创造一个HashMap价值观呢?效率更高,并且具备您所需的所有灵活性.
public class Student
{
private HashMap<String, String> values;
public Student()
{
this.values = new HashMap<String, String>();
}
public void addValue(String name, String value)
{
values.put(name, value);
}
public String getValue(String name)
{
return values.get(name);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么是HashMap?
您说所有对象可能具有不同的值,您将通过a定义这些新方法和属性String.嗯..这将实现该功能,没有任何可怕的字节码操作.例如:
String attrName = "name";
String attrValue = "jim";
Student stu = new Student();
stu.addValue(attrName, attrValue);
Run Code Online (Sandbox Code Playgroud)
目前,你只有一个值HashMap.你必须面对的唯一无意中听到的是HashMap对象本身,以及两种方法,坦率地说这是一个更为简洁的解决方案的公平交易.
| 归档时间: |
|
| 查看次数: |
16304 次 |
| 最近记录: |