Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从一个类生成不同类型的对象?_Java - Fatal编程技术网

Java 如何从一个类生成不同类型的对象?

Java 如何从一个类生成不同类型的对象?,java,Java,邮箱类 public class MailBox { ArrayList<TwootMessage> messages = new ArrayList<TwootMessage>(); public void addMessage(TwootMessage message){ if(messages.size() < 100){ messages.add(message)

邮箱

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);
        }
    }
公共类邮箱{
ArrayList消息=新建ArrayList();
public void addMessage(TwootMessage){
if(messages.size()<100){
消息。添加(消息);
集合。排序(消息);
}
否则{
System.out.println(“邮箱已满,无法添加更多邮件,抱歉!”);
}
}
公共void deleteMessage(int messageIndex){
messages.remove(messageIndex);
}
公共消息getFirstMessage(){
返回消息。获取(0);
}
}
这是我的密码。我试图从这个类中创建两种类型的邮箱,一种只接受TextTwoot,另一种接受所有内容。TwoootMessage是textTwoot和其他类型Twoot的超类。 有人能帮忙吗?
谢谢你

让课程变得通用:

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);
    }
}
公共类邮箱{
列表消息=新建ArrayList();
公共无效地址消息(T消息){
//实现就在这里。
}
公共T getFirstMessage(){
返回消息。获取(0);
}
}
这将允许您创建以下对象:

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

谢谢,但在实际创建对象时,代表什么以及如何使对象彼此不同?T代表泛型类型。阅读更多: