我有一个名为Register的方法,我需要找出哪个类对象发送到这个方法,我的代码如下,不编译
错误是找不到符号
符号:T类
代码
public class UserTypeA {
private int SSN;
private int Name;
.... Getter and setters go here....
}
public class UserTypeB {
private int Name;
... Getter and setters go here ....
}
public void mymethod(){
UserTypeA usera = new UserTypeA();
usera.setName("Jack");
register(usera);
UserTypeB userb = new UserTypeB();
userb.setName("Daniel");
register(userb);
}
public void register(Class<T> type){
type.registerUser(type.getName());
}
正如Jayamohan在他的回答中所说的那样,我尝试了以下内容,但它无法访问getName方法。
public void register(Object obj) throws ClassNotFoundException {
if(obj instanceof UserTypeA)
{
System.out.println(obj.getName());
}
答案 0 :(得分:1)
将注册方法更改为使用instanceof
关键字,如下所示
public void register(Object obj) {
if (obj instanceof UserA) {
// Do something related to UserA
} else if (obj instanceof UserB) {
// Do something related to UserB
}
}
答案 1 :(得分:-1)
我怀疑您只需要一个User
类,而不是UserA
和UserB
类。然后,您可以从该类创建两个User
对象。然后,您只需将代码更改为以下内容:
public void mymethod(){
User jack = new User();
jack.setName("Jack");
register(jack);
User dan = new User();
dan.setName("Dan");
register(dan);
}
public void register(User newUser){
// Do something here to register the newUser
}
请注意,此代码仍然无法自行编译。您还需要在单独的文件中创建User
类。我不知道你的要求是什么,所以我不能就你需要做什么提出任何建议。