-1

我有一个名为Register的方法,我需要找出将哪个类对象发送到该方法,我的代码如下,无法编译

错误是找不到符号

符号:T级

  • 请注意我有两种类型的类 UserTypeA 和 UserTypeB

代码

   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());
    }
4

2 回答 2

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
    }
}
于 2013-02-27T01:11:42.567 回答
-1

我怀疑你只需要一个User ,而不是UserAUserB类。然后,您可以从该类创建两个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在单独的文件中创建类本身。我不知道您的要求是什么,所以我无法就您需要为这部分做什么提供任何建议。

于 2013-02-27T01:07:14.217 回答