[英]How to find subclass of superclass object? (Java)
I'm writing a library management system.我正在写一个图书馆管理系统。 For the login process, I have a log (implemented via ArrayList
) that contains objects of type, User
.对于登录过程,我有一个日志(通过ArrayList
实现),其中包含User
类型的对象。 User
is a superclass for the subtypes, Librarian
and Admin
(all users must be one or the other). User
是子类型Librarian
和Admin
的超类(所有用户必须是其中之一)。 How do I check to see if an instance of User
is of type Admin
?如何检查User
的实例是否属于Admin
类型? The code below is what I tried before.下面的代码是我之前尝试过的。 The issue is that I have code in the AdminUser
constructor that I don't want executed unnecessarily.问题是我不想在不必要的情况下执行AdminUser
构造函数中的代码。 I just need to see if the passed user is of type, Admin
.我只需要查看传递的用户是否属于Admin
类型。
public boolean isAdmin( User u )
{
AdminUser a = new AdminUser();
Class<? extends AdminUser> c = a.getClass();
return u.getClass() == a.getClass();
}
You can use AdminUser.class
.您可以使用AdminUser.class
。
public boolean isAdmin(final User u)
{
return u.getClass() == AdminUser.class;
}
Just saying, instanceof
works correctly.只是说, instanceof
工作正常。
public boolean isAdmin( User u )
{
return (u instanceof Admim);
}
But you can use the class
keyword.但是您可以使用class
关键字。
public boolean isAdmin( User u )
{
return u.class == AdminUser.class;
}
But I recommend using instanceof
.但我建议使用instanceof
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.