假设我有一个C++类,其属性是一个引用:
class ClassB {
ClassA &ref;
public:
ClassB(ClassA &_ref);
}
Run Code Online (Sandbox Code Playgroud)
当然,构造函数是这样定义的:
ClassB::ClassB(ClassA &_ref) : ref(_ref) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
我的问题是:当一个类'ClassB'的实例被销毁时,'ClassB :: ref'引用的对象是否也被销毁?
所述的生命周期 @RequestScoped和@SessionScopedBean 管理豆由Servlet容器自身管理,因为它们是基本上作为一个属性存储HttpRequest和HttpSession分别.JSF如何管理生命周期@ViewScopedBean?我知道它是在创建视图时创建的,并且可以使用,直到有回发到另一个视图.但是我发现在我们离开那个视图后不会立即收集垃圾.
在Java中杀死进程的最佳方法是什么?
获取PID然后用它杀死它Runtime.exec()?
用destroyForcibly()吗?
这两种方法有什么区别,还有其他解决方案吗?
对于我的应用程序,我有用户帐户,人们可以注册.我使用devisegem进行设置.
我还有一个用户页面,其中列出了注册到该站点的所有用户以及destroy链接.我希望我的管理员能够删除用户并将其重定向到此用户列表页面.但是,当我单击链接以销毁特定用户时,它只会重定向到用户配置文件页面,并且不会从数据库中删除该用户.
有人知道为什么吗?
**更新:根据建议更新了以下代码,现在可以使用.
users_controller.rb
def destroy
@user = User.find(params[:id])
@user.destroy
if @user.destroy
redirect_to root_url, notice: "User deleted."
end
end
Run Code Online (Sandbox Code Playgroud)
用户/ index.html.erb
<div class = "container">
<div id="usersview">
<b>USERS DIRECTORY</b>
<%= render @users %>
</div>
<center>
<%= will_paginate @users %>
</center>
</div>
Run Code Online (Sandbox Code Playgroud)
用户/ _user.html.erb
<div class="comments">
<%= link_to user.name, user %>
<% if current_user.try(:admin?) && !current_user?(user) %>
<%= link_to "Destroy", admin_destroy_user_path(user), method: :delete, data: { confirm: "You sure?" } %>
<% end %>
</div>
Run Code Online (Sandbox Code Playgroud)
的routes.rb
devise_for …Run Code Online (Sandbox Code Playgroud) 我有一个Ahas_many 的对象B(简单关联):
has_many :book_accounts, {
dependent: :destroy
}
Run Code Online (Sandbox Code Playgroud)
我正在进行before_destroy回调.我想检查并确保在销毁之前没有C(属于哪个B)和D's(属于哪个C)A.我检查了日志,并且B在回调之前所有的都被删除导致回调崩溃.
这是Rails应该如何工作?除了删除dependent: destroy和手动销毁回调中B的s之外,我能做些after_destroy什么吗?或者这是首选解决方案?
通过使用单例,只能创建一个实例.我们是否需要销毁该实例?
我有一个单独的DBManager,它管理JDBC连接和查询操作.通过调用它的静态newInstance方法,我可以得到它的实例,然后我做一些查询.最后,我想关闭数据库连接,然后调用另一个静态方法来关闭JDBC连接.
现在连接已关闭,而DBManager的实例仍处于活动状态但没有用处.我需要通过例如将其分配给null来销毁它吗?否则稍后可能会被错误引用.
如果我将该实例分配为null,然后再次调用newInstance方法,我将获得另一个新的不同实例吗?
我有一个需要摧毁自己的物体.
可以吗?
这个例子错了吗?
void Pawn::specialMoves(Coordinate const& from, Coordinate const& to, int passant)
{
/*...*/
m_board->replace(to, new Queen(m_colour));//replace pawn by queen
}
void Board::replace(Coordinate const &to, Piece* newPiece)
{
delete tile[to.x()][to.y()];
tile[to.x()][to.y()] = newPiece;
}
Run Code Online (Sandbox Code Playgroud)启动多个线程并使每个exec()然后destroy()一个正在运行的java进程导致某些进程没有被销毁并且在程序退出后仍然运行.这是一些重现问题的代码.我注意到你启动的线程越多,进程就越多.而且,在destroy()之前睡眠越多,进程就越少.(我使用InfiniteLoop作为示例.任何正在运行的进程都可以解决问题.)
编辑:已经向Oracle报告了Bug,等待答案.随意分享有关该主题的任何知识/实验.
for(int i = 0; i < 100; i++)
{
new Thread(new Runnable()
{
public void run()
{
try
{
Process p = Runtime.getRuntime().exec(new String[]{"java", "InfiniteLoop"});
Thread.sleep(1);
p.destroy();
}catch(IOException | InterruptedException e){e.printStackTrace();}
}
}).start();
}
Run Code Online (Sandbox Code Playgroud) 我在Rails 4中收到以下错误
依赖选项必须是destroy delete之一
显然https://github.com/rails/rails/issues/3458之前支持其他选项.但是现在有什么可能呢?我找不到任何其他文件
谢谢您的帮助
destroy ×10
java ×3
c++ ×2
object ×2
process ×2
associations ×1
attributes ×1
callback ×1
class ×1
instance ×1
jsf ×1
jsf-2 ×1
kill ×1
managed-bean ×1
php ×1
reference ×1
runtime.exec ×1
singleton ×1
view-scope ×1