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

<tr id="iopbk"></tr>
    1. 為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
      已解決430363個問題,去搜搜看,總會有你想問的

      Java從包含Intellij中包含雙精度數(shù)組的對象的對象數(shù)組中訪問數(shù)組元素

      Java從包含Intellij中包含雙精度數(shù)組的對象的對象數(shù)組中訪問數(shù)組元素

      30秒到達(dá)戰(zhàn)場 2022-06-08 17:20:57
      背景故事:我有一個 Spring Boot 應(yīng)用程序,它可以獲取使用自定義注釋進(jìn)行注釋的任何方法的輸入?yún)?shù)。它將這些參數(shù)的類型放在 Class Arrayclazz中,并將值放在 Object 數(shù)組obj中。這是通用的,因此 obj 中的元素可以是數(shù)組,例如:clazz = {int, java.lang.String, [D}obj = {2, "Foobar", [3.1415, 2.718]}我正在嘗試使用以下代碼打印出 obj 中的所有元素。請注意, clazz 和 obj 始終具有相同的長度,并且相同的索引彼此相關(guān)(參見上面的示例)。代碼檢查對象是否是一個數(shù)組,而不是打印類似 [D@431621private void othermethod(Class[] clazz, Object[] obj){    for(int i =0 ; i<clazz.length;i++){        if(clazz[i].isArray()){            System.out.println(ObjArrayDisplay(obj[i], clazz[i]));        }        else{            System.out.println(obj[i].toString());        }    }}private String ObjArrayDisplay(Object o, Class c){    //Option 1. return Arrays.deepToString((Object[])o);java.lang.ClassCastException: [D cannot be cast to [Ljava.lang.Object;    //Option 2. return Arrays.deepToString(c.cast(o)); deepToString (java.lang.Object[]) in Arrays cannot be applied to (java.lang.Object)}這就是問題所在。讓我們回到示例值:clazz = {int, java.lang.String, [D}obj = {2, "Foobar", [3.1415, 2.718]}選項 1:對于這個 clazz 和 obj,代碼可以編譯,但是當(dāng)代碼到達(dá) Double 數(shù)組時,它不能被強(qiáng)制轉(zhuǎn)換回 Object 數(shù)組,因為 Double 擴(kuò)展了 Object。選項 2:由于語法錯誤,這次代碼甚至無法編譯:Arrays.deepToString 需要一個 Object 數(shù)組,但在運(yùn)行之前,語法檢查器只能看到 Object。直到運(yùn)行時之后,包裝在 Object 中的 Double[] 才被發(fā)送到堆棧中。這對于 Hashmap、ArrayList 等其他數(shù)據(jù)結(jié)構(gòu)也會有問題。有沒有辦法得到Object o的元素?我無法控制哪些原始類型或?qū)ο笫亲⑨尫椒ǖ妮斎?,因此更?clazz 和 obj 不是一種選擇。編輯:提供 clazz(即類)和 obj(即參數(shù))的 Spring Boot 類@Aspect@Component@Getterpublic class Flow {    @Autowired    SubscriptionsIntegration SI;    private Class[] classes;    private Object[] params;    private Object returnvalue = "Start";    @Around("@annotation(TrackFlow)")    public Object TrackFlow(ProceedingJoinPoint joinPoint) throws Throwable{        CodeSignature cs = (CodeSignature) joinPoint.getSignature();        classes = cs.getParameterTypes();        params = joinPoint.getArgs();        Object proceed = joinPoint.proceed();        returnvalue = proceed;        return proceed;    }}編輯 2:在一個不起眼的 maven 依賴項中找到了解決方案,并將其發(fā)布在這里。
      查看完整描述

      2 回答

      ?
      精慕HU

      TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

      為我自己的帖子找到了解決方案。為了將來參考,原來有一個 Maven Jackson 依賴項可以做到這一點


      @Autowired

      com.fasterxml.jackson.databind.ObjectMapper objectMapper;


      //...other methods and variables


      private String ObjArrayDisplay(Object o, Class c){

          String returnValue = null;

          try {

              returnValue = objectMapper.writeValueAsString(o);

          } catch (JsonProcessingException e) {

              e.printStackTrace();

          }


          return returnValue;

      }


      查看完整回答
      反對 回復(fù) 2022-06-08
      ?
      慕碼人8056858

      TA貢獻(xiàn)1803條經(jīng)驗 獲得超6個贊

      如果我理解正確,您可以使用包裝類并將其打印為 toString


      class Scratch {

          public static void main(String[] args) {

              Double[] objects = {2.02,2.22,2.13};

              System.out.print(new Foo(objects));


              String[] strings = {"array","of", "strings"};

              System.out.print(new Foo(strings));


          }


          public static class Foo{

              private Object[] objects;

              public Foo(Object[] objects){

                  this.objects=objects;

              }


              @Override

              public String toString() {

                  return "Foo{" +

                          "objects=" + Arrays.toString(objects) +

                          '}';

              }

          }

      }

      您提到您無法控制它是否是基元,但它們不會被傳遞,private void othermethod(Class[] clazz, Object[] obj)因為它們不是對象數(shù)組。


      查看完整回答
      反對 回復(fù) 2022-06-08
      • 2 回答
      • 0 關(guān)注
      • 123 瀏覽

      添加回答

      舉報

      0/150
      提交
      取消
      微信客服

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

      幫助反饋 APP下載

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

      公眾號

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