我一定花了一个多小时试图找出出现意外行为的原因.我最终意识到没有像我期望的那样设置场地.在耸耸肩并继续前进之前,我想明白为什么会这样.
在运行下面的示例时,我希望输出为true,但它是错误的.其他测试表明,我总是得到任何类型的默认值.
public class ClassOne {
public ClassOne(){
fireMethod();
}
protected void fireMethod(){
}
}
public class ClassTwo extends ClassOne {
boolean bool = true;
public ClassTwo() {
super();
}
@Override
protected void fireMethod(){
System.out.println("bool="+bool);
}
public static void main(String[] args) {
new ClassTwo();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
bool=false
Run Code Online (Sandbox Code Playgroud) 我必须说,我知道,硬编码在客户端应用程序密码是不好的做法,原因是多方面的,以前言这个问题.处理该问题还有其他问题.这个问题的范围较窄,并且假定认证证书必须驻留在客户端应用程序的一些集合,是你无法控制的原因代码.
如果某些方面是比其他人(例如:JPasswordField中存储在字符数组,而不是一个字符串密码),如果你不得不硬编码在Java应用程序,你可以采取什么措施来使其难以被取出?
更新:
应用程序的一个实例在远程PC上运行,最终用户具有管理员权限.凭证用于访问同一网络中的数据库,因此实际密码已经预先确定,必须在实际代码中手动输入.