如何从一个类制作不同类型的对象?

时间:2014-01-22 09:31:21

标签: java

MailBox

public class MailBox {

        ArrayList<TwootMessage> messages = new ArrayList<TwootMessage>();

        public void addMessage(TwootMessage message){

            if(messages.size() < 100){

                messages.add(message);
                Collections.sort(messages);
            }

            else{

                System.out.println("The Mailbox is full, cant add more messages, sorry!");
            }
        }

        public void deleteMessage(int messageIndex){

            messages.remove(messageIndex);

        }

        public TwootMessage getFirstMessage(){

            return messages.get(0);
        }
    }

这是我的代码。我试图能够从这个类中创建两种类型的邮箱,只接受TextTwoot和一个接受所有内容的邮箱。 TwoootMessage是textTwoot和其他类型的两个类的超类。 有人可以提供一些帮助吗? 谢谢

1 个答案:

答案 0 :(得分:1)

使该类具有通用性:

public class MailBox<T> {

    List<T> messages = new ArrayList<T>();

    public void addMesssage(T message) {
        //implementation goes here.
    }

    public T getFirstMessage() {
        return messages.get(0);
    }
}

这将允许您创建如下对象:

MailBox<TwoootMessage> twootMessageMailbox = new MailBox<TwoootMessage>();
MailBox<Object> mailBoxForEverything = new MailBox<Object>();