是否创建了一个实例?

时间:2014-10-09 08:19:35

标签: java if-statement instance anonymous

假设这条件:

(ObjectA) request.getParameter("something") != null

是否会创建ObjectA的匿名实例?

4 个答案:

答案 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

就够了。