0x00 前言
前段时间学习了golang的基础语法,发现其反射的概念与Java的差别挺大,做个简单对比,记录一下。 为了测试Java反射,创建如下User类:
public class User {
public String username;
private String password;
public User() {}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public void publicMethod() {
System.out.println("publicMethod is running ...");
}
private void privateMethod() {
System.out.println("private is running ...");
}
}
按照上面的User类,创建如下Golang结构:
type User struct {
Username string
password string
}
func (u User) PublicMethod() {
fmt.Println("PublicMethod is running ... ")
}
func (u User) privateMethod() {
fmt.Println("privateMethod is running ...")
}
0x01 操作公有字段
1.1 Java反射操作公有字段
Java操作User类的公有字段username时,有如下几步: 1、获取User类的Class对象 2、获取username字段对应的Field对象 3、通过Field对象操作指定User对象的username字段值
public static void main(String[] args) throws Excepti