假设这条件:
(ObjectA) request.getParameter("something") != null
是否会创建ObjectA
的匿名实例?
答案 0 :(得分:0)
request
中的如果它不为空,则已存在ObjectA
的实例。所以不会有任何新的实例。
答案 1 :(得分:0)
不,实例未创建。即使该方法返回一些对象,也只是将引用转换为ObjectA
。该实例将由request.getParameter()
创建。
精化,强制转换不会创建新实例。它只是指定参考。下面的例子显示了计数。仅创建一个实例。希望这有帮助。
class Parent1 { static int j; Parent1(){j++;} }
class Child extends Parent1{ static int i; Child(){i++;}}
// and the code
Parent1 pc = new Child();
System.out.println(Child.i);
System.out.println(Parent1.j);
Child p = (Child) pc;
System.out.println(Child.i);
System.out.println(Parent1.j);
输出
1
1
1
1
答案 2 :(得分:0)
为什么要创建ObjectA
的实例,(ObjectA)
只会尝试将返回的值从request.getParameter("something") != null
转换为类型ObjectA
。
答案 3 :(得分:0)
request.getParameter("something")
返回一个Object,你只需将它转换为ObjectA
来检查它的类型。没有创建实例/对象。
来到你的实际代码行,你不需要那里的演员
request.getParameter("something") != null
就够了。