Java语法混乱,为什么put()围绕一个类?

Leo*_*eoa -1 java syntax

我正在研究Prototype Design模式我无法理解下面的语法.你能解释一下吗?将类放入括号并初始化为什么意味着什么:

Person person2 = (Person) person1.doSomthing();
Run Code Online (Sandbox Code Playgroud)

代码在上下文中:

// code in  int main
Person person1 = new Person("Fred");// this is understood
    System.out.println("person 1:" + person1);// this is understood
    Person person2 = (Person) person1.doClone();//not understood
    System.out.println("person 2:" + person2);// this is understood
Run Code Online (Sandbox Code Playgroud)

这个语法在java中用于转换吗?

ass*_*ias 9

这是一个演员.换句话说,该doSomething()方法很可能不会被声明为返回a Person.因此,您需要先将返回的值转换为a,Person然后再将其赋值给person2.

如果doSomething确实返回a Person,则不需要演员表.

如果返回的对象的实际类型doSomething不能分配给Person,则强制转换将ClassCastException在运行时抛出.

有关它的更多信息,请参阅JLS#15.16:

转换表达式在运行时将一个数字类型的值转换为另一个数字类型的类似值; 或者在编译时确认表达式的类型是boolean; 或者在运行时检查引用值是指其类与指定引用类型兼容的对象.

括号和它们包含的类型有时称为强制转换运算符.