序言
我有一门课:
public final class Session {
private int userId;
private String token;
Session(int userId, String token) {
this.userId = userId;
this.token = token;
}
public String getToken() {
return token;
}
public int getUserId() {
return userId;
}
}
正如您所看到的,我们可以通过反射来创建对象。
- 我知道我可以禁止通过
private
或package-private
修饰符访问构造函数
目标
- 禁止创建对象,即使是通过反射的方式,以保持安全
- 仅访问填充对象字段
package-private
附言:也许它可以通过OOP/OOD的方式完成?
在纯Java上,安装一个SecurityManager,其中包含一个描述所需内容的策略。
虽然Android有一个SecurityManager类,但文档说不要使用它,我认为没有任何方法可以做你想做的事情,尽管我也不确定它有什么意义。