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

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

如何遍歷 Object 引用的數(shù)組?

如何遍歷 Object 引用的數(shù)組?

繁華開(kāi)滿天機(jī) 2023-06-08 19:19:45
我有一個(gè)基于標(biāo)識(shí)字符串get(String)返回 的函數(shù)。Object有時(shí),Object返回的get是一個(gè)數(shù)組。如果是這樣,我想遍歷每個(gè)數(shù)組元素并以某種方式處理該元素。類似于下面的代碼。 Object object = get(identifier); if(object.getClass().isArray())      processArray(object); void processArray(Object array) {    //For each element in the array, do something }我嘗試的解決方案是這樣的 void processArray(Object array) {      Object[] arrayCasted  = (Object[]) array;      for(Object arrayElement : arrayCasted)           //Process each element somehow  }但這僅適用于對(duì)象數(shù)組(而不適用于原始數(shù)組) Integer[] test1 = {1, 2, 3}; int[] test2 = {1, 2, 3}; processArray(test1); //Works processArray(test2); //Does not work: ClassCastException有沒(méi)有辦法processArray為所有陣列工作?
查看完整描述

1 回答

?
翻閱古今

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

使用java.lang.reflect.Array是關(guān)鍵。如果你有一個(gè)Objectwhich 實(shí)際上是某種類型的數(shù)組(原始類型、字符串或某種自定義類型等),你可以在不知道其類型或進(jìn)行類型轉(zhuǎn)換等的情況下迭代、打印等。

Object[]無(wú)法進(jìn)行類型轉(zhuǎn)換,因?yàn)樵夭皇穷愋?code>Object,但您可以通過(guò)了解其組件類型 ( obj.getClass().getComponentType()) 來(lái)類型轉(zhuǎn)換為特定類型的數(shù)組。但是,java.lang.reflect.Array基于解決方案要干凈得多。

import java.lang.reflect.Array;


public class ArrayOfUnknownType {

    public static void main(String[] args) {

        int[] i = {1, 2, 3};

        String[] s = {"a", "b", "c"};

        Dog[] d = {new Dog("d"), new Dog("e")};

        process(i);

        process(s);

        process(d);

    }


    private static void process(Object data) {

        System.out.println(data.getClass().getComponentType());

        if(data.getClass().isArray()) {

            int length = Array.getLength(data);

            for(int count =0; count < length; count++ ){

                System.out.println(Array.get(data, count));

            }

        }

    }


    private static class Dog {

        public String name;


        public Dog(String name) {

            this.name = name;

        }


        @Override

        public String toString() {

            return "Dog{" +

                    "name='" + name + '\'' +

                    '}';

        }

    }

}


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

添加回答

舉報(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)