返回信息流假如现在有一个一般类class A ,它包含一个方法void b();
我在代码里直接写new A.b();也是可以的喽,意思就是新建一个类A的对象,然后直接调用该对象的方法b。这个理解应该没错吧?
但是这种写法会不会带来一种问题,即这个新建的对象没有引用,以后再想对这个对象进行任何操作都是不可能的了?请问是这样吗?如果是这样,怎么还会有人这么写呢?
求问!
这是一条镜像帖。来源:北邮人论坛 / java / #35252同步于 2014/10/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
【问题】直接new一个对象实例出来
yanboyuan
2014/10/15镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
是的,这样写是因为以后这个对象用不到了。
既然用不到了能new A().b()这样写。
我干嘛还要 :
p=new A();
p.b();呢
比如new A().b()返回一个值,我想用这个返回值做B方法的参数。
B(new A().b())这样就可以了。无需先new出A给p,在B(p)了。
另外有时候为了防止p干别的事,影响到上面,不给他引用岂不是更好。
ps:刚注意到你的是void b()
void的设定只是为了简化问题而已。
谢楼上详细的解答
【 在 HB0318 的大作中提到: 】
: 是的,这样写是因为以后这个对象用不到了。
: 既然用不到了能new A().b()这样写。
: 我干嘛还要 :
: ...................
只要退出作用域,栈中实际的引用会一直存在。但是由于代码里没有引用的名称,所以,对象A不能再做什么操作。如果有一种特殊的方法去哪到这个对象的引用,仍然可以做其他操作。
【 在 yanboyuan 的大作中提到: 】
: 假如现在有一个一般类class A ,它包含一个方法void b();
: 我在代码里直接写new A.b();也是可以的喽,意思就是新建一个类A的对象,然后直接调用该对象的方法b。这个理解应该没错吧?
: 但是这种写法会不会带来一种问题,即这个新建的对象没有引用,以后再想对这个对象进行任何操作都是不可能的了?请问是这样吗?如果是这样,怎么还会有人这么写呢?
: ...................
你可以在void b();里面把this放到一个外部的static对象里面,比如hashmap,然后就可以操作这个对象了