我刚开始学习java,我有两个基本问题。 我的main()看起来是这样的:使用“Object”关键字在Java中创建对象
public class Main {
public static void main(String[] args) {
Storage<BankAccount> aStorage = new Storage<BankAccount>();
Storage<String> sStorage = new Storage<String>();
Class baCls = BankAccount.class;
try {
Object myAccount = baCls.newInstance();
aStorage.setValue(myAccount);
myAccount.deposit(15);
}
catch (InstantiationException e) {
}
catch (IllegalAccessException e) {
}
}}
为什么我得到这些错误:
- 的方法存款(INT)是未定义的类型对象
- 的方法SetValue(的BankAccount)在类型Storage中不适用于参数(Object)。
之后,我试图取代:
Object myAccount = baCls.newInstance();
与
BankAccount myAccount = baCls.newInstance();
但后来我得到这个错误:
- 类型不匹配:不能从对象转换为BankAccount
我知道,正确的方法是:
BankAccount myAccount = (BankAccount) baCls.newInstance();
但我真的不知道,我明白为什么... 我试图从各种渠道了解,所以我有几个理论,但我仍然无法适当地将我的头围绕在上面。 有人可以帮我理解吗?
P.S. 对不起,发布这样一个基本的问题。
是否有你试图通过使用Object#newInstance而不是像'BankAccount myAccount = new BankAccount()'这样的东西实例化的原因? – Exupery
没有任何特定的原因,我只是在试图理解该语言的基本概念:) – Cooli