java实体类如何加入虚拟字段

java实体类如何加入虚拟字段,第1张

java实体类加入虚拟字段的步骤如下:

1、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。

2、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。

3、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。

可以的,你用 javassist, cglib 或者更为底层的工具 ASM 都是可以。

ASM 的话相对复杂一些,参考代码:

下面这个是用 ASM 工具为 Student 类添加一个 public String 类型的 address 属性

1,需要添加属性的原始类:Student.java

Java code?

public class Student {

private int age

private String name

public int getAge() {

return age

}

public void setAge(int age) {

this.age = age

}

public String getName() {

return name

}

public void setName(String name) {

this.name = name

}

}

2,添加属性的适配器:AddFieldAdapter.java

Java code?

import org.objectweb.asm.ClassAdapter

import org.objectweb.asm.ClassVisitor

import org.objectweb.asm.FieldVisitor

public class AddFieldAdapter extends ClassAdapter {

private int accessModifier

private String name

private String desc

private boolean isFieldPresent

public AddFieldAdapter(ClassVisitor cv, int accessModifier, String name, String desc) {

super(cv)

this.accessModifier = accessModifier

this.name = name

this.desc = desc

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11803247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存