解决这个问题的一种方法是使用继承和多态的概念。
首先,我们可以定义一个父类User
,然后定义不同类型的用户类,如AdminUser
、CustomerUser
等,它们都继承自User
类。
public class User {
private String name;
private String role;
public User(String name, String role) {
this.name = name;
this.role = role;
}
// 省略getter和setter方法
// ...
}
public class AdminUser extends User {
private String adminLevel;
public AdminUser(String name, String role, String adminLevel) {
super(name, role);
this.adminLevel = adminLevel;
}
// 省略getter和setter方法
// ...
}
public class CustomerUser extends User {
private String customerId;
public CustomerUser(String name, String role, String customerId) {
super(name, role);
this.customerId = customerId;
}
// 省略getter和setter方法
// ...
}
接下来,我们可以创建一个User
类的数组,并向其中添加不同类型的用户对象。
public class Main {
public static void main(String[] args) {
User[] users = new User[3];
users[0] = new AdminUser("Admin", "admin", "Level 1");
users[1] = new CustomerUser("Customer1", "customer", "123456");
users[2] = new CustomerUser("Customer2", "customer", "654321");
for (User user : users) {
System.out.println("User: " + user.getName() + ", Role: " + user.getRole());
if (user instanceof AdminUser) {
AdminUser adminUser = (AdminUser) user;
System.out.println("Admin Level: " + adminUser.getAdminLevel());
} else if (user instanceof CustomerUser) {
CustomerUser customerUser = (CustomerUser) user;
System.out.println("Customer ID: " + customerUser.getCustomerId());
}
System.out.println();
}
}
}
在上面的示例中,我们创建了一个User
类的数组,并向其中添加了一个AdminUser
对象和两个CustomerUser
对象。然后,我们使用for
循环遍历数组中的每个用户,并通过instanceof
关键字判断用户的类型,从而进行不同类型的操作。
需要注意的是,当我们从数组中取出一个对象时,它的静态类型是User
,但我们可以将其强制转换为它的实际类型,以便访问特定类型的属性和方法。
希望这个示例能够解决你的问题!