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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Java 中將值修改為 Tuple2

如何在 Java 中將值修改為 Tuple2

慕工程0101907 2022-05-12 18:57:44
我在折疊函數(shù)中使用累加器。我想更改累加器的值。我的函數(shù)看起來像這樣:public Tuple2<String, Long> fold(Tuple2<String, Long> acc, eventClass event) {    acc._1 = event.getUser();    acc._2 += event.getOtherThing();    return acc}對我來說這應(yīng)該是可行的,因為我所做的就是改變累加器的值。但是我得到的是Cannot assign value to final variable _1. 對_2. 為什么這些屬性是accfinal的?如何為它們分配值?快速編輯: Wat I can to be rust return a new Tuple,但在我看來這不是一個好的解決方案return new Tuple2<String, Long>(event.getUser(), acc._2 + event.getOtherThing());flink框架的解決方案: 使用flink中定義的Tuple2。使用導(dǎo)入它import org.apache.flink.api.java.tuple.Tuple2;然后將其與acc.f0 = event.getUser();acc.f1 += event.getByteDiff();return acc;
查看完整描述

2 回答

?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

我不知道你還在使用哪種 Tuple2,但我認(rèn)為它是一個 scala Tuple2。scala Tuple2 它是不可變的。您無法更改 Immutable 對象的值,您必須重新創(chuàng)建它。為什么?scala Tuple2 是一個函數(shù)式編程“數(shù)據(jù)結(jié)構(gòu)”,因此,作為“函數(shù)式編程”的所有概念,它試圖減少副作用。您可以使用 .copy 函數(shù)根據(jù)需要重新創(chuàng)建它。以下是代碼示例:


 @Test

    public void test() {

        Tuple2<String,Long> tuple = new Tuple2<>("a",1l);

        Tuple2<String,Long> actual = tuple.copy(tuple._1,tuple._2+1);

        Tuple2<String,Long> expected = new Tuple2<>("a",2l);

        assertEquals(actual,expected);

    }


查看完整回答
反對 回復(fù) 2022-05-12
?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

我不知道Tuple2你在和哪個合作。如何返回一個新對象:


Tuple2<String, Long> tuple = new Tuple2<String, Long>();

tuple._1 = event.getUser();

tuple._2 = event.getOtherThing() + acc._2;

return tuple;


查看完整回答
反對 回復(fù) 2022-05-12
  • 2 回答
  • 0 關(guān)注
  • 740 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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