第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將多個(gè)類添加到通用 ArrayList?

如何將多個(gè)類添加到通用 ArrayList?

偶然的你 2022-12-15 17:05:16
我正在做一個(gè)作業(yè),我只能將特定類添加到通用 ArrayList,但 ArrayList 似乎沒有按預(yù)期添加類。public class ComputerOrder<T extends Product> extends GenericOrder<T> {private List<T> products;//the list of items    public void addProduct(T t) {        if (t.getClass().isInstance(ComputerPart.class)) {            products.add(t);            }        if (t.getClass().isInstance(Service.class)) {            products.add(t);           }        if (t.getClass().isInstance(Peripheral.class)) {            products.add(t);           }        else System.out.println("Not the right type of object.");   }主要參數(shù)測(cè)試:public static void main(String[] args) {    ComputerPart c;    c = new ComputerPart(12);    ComputerOrder<Product> g3 = new ComputerOrder<>();    g3.addProduct(c);    g3.print();}預(yù)期的結(jié)果是 ArrayList g3 能夠添加 c,因?yàn)樗?ComputerPart 對(duì)象的一個(gè)實(shí)例,但 ArrayList 是空的。有人可以解釋我的代碼做錯(cuò)了什么嗎?注意:“else”語句僅用于測(cè)試目的,并且似乎表明 if 語句無法正常工作,因?yàn)樗谖覝y(cè)試時(shí)不斷被觸發(fā)。
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

您的主要問題是您弄亂了 isinstance 檢查。該方法是相反的;你要找的是:

ComputerPart.class.isInstance(t),不是t.getClass().isInstance(ComputerPart.class)。但是,您可以將其寫得更簡(jiǎn)單t instanceof ComputerPart

其次,您搞砸了系統(tǒng)輸出。據(jù)推測(cè),您的意思是代碼中的每個(gè)“if”都改為“else if”,當(dāng)然第一個(gè)除外。


查看完整回答
反對(duì) 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 81 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)