在创建对象之前使用的oop Java括号
我有一个非常基本的java问题,但教程并不关注这方面。如果有人能描述一下我们使用这种括号的原因
括号内的第一个员工示例:
Employee e = null;
try
{
FileInputStream fileIn = new FileInputStream("/tmp/employee.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
e = (Employee) in.readObject(); <=========== (Employee)
in.close();
fileIn.close();
}
第二个例子:
InputStream fileIs = null;
ObjectInputStream objIs = null;
try {
fileIs = new FileInputStream("MyEmpFile.txt");
objIs = new ObjectInputStream(fileIs);
Employee emp = (Employee) objIs.readObject(); <========== (Employee)
System.out.println(emp);
}
我明白:
Employee emp = new Employee();
是的,但是这个括号(员工)在里面,我不明白。这是什么
我在这里问这个问题是因为谷歌搜索结合了“构造器之前的java括号”、“创建新对象的java括号”等查询,没有找到可以收集问题信息的结果。我也读过java教程,都没有指出这个例子
(例如www.tutorialspoint.com/java/index.htm)
谢谢你抽出时间!我希望将来能帮助其他议员
# 1 楼答案
这就是所谓的铸造。 基本上,它是将一种类型的对象“转换”为另一种类型的对象。 如果你觉得评论上的“可能重复”链接没有帮助(你应该向上投票),请检查这些链接
https://howtoprogramwithjava.com/java-cast/
https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html(参见“铸造对象”一页末尾附近的部分)
# 2 楼答案
当你看到objIs的签名。readObject();它返回object类的对象,所以我们需要输入cast to employee