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

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

如何在 Java 中編寫自定義轉(zhuǎn)換方法

如何在 Java 中編寫自定義轉(zhuǎn)換方法

qq_花開花謝_0 2023-01-05 10:00:11
我有一個有幾個成員的 Java 類。我想為它寫一個自定義演員表。我想知道怎么可能這樣做?讓我們假設(shè)類如下:class Person {   private int age;   private float weight;   // getters and setters and etc}我希望int強制轉(zhuǎn)換返回age一個對象的成員,并希望強制轉(zhuǎn)換float返回一個對象的成員weight。例如:public class Main {    public static void main(String[] args) {        // create an object        Person P = new Person();        P.setAge(21);        P.setWeight(88.0);        // case 1: casting object to an existing data type        int personAge = (int) P; // would return the age        float personWeight = (float) P;  // would return the weight        // case 2: casting an existing data type to an object        Person P2 = (Person) personAge; // this would create an instance of the object whose age is assigned and weight is not assigned    }}我想知道是否可以做相反的事情。特別是,強制轉(zhuǎn)換int為將返回其已分配Person的實例,對于.Personagefloat我知道這個問題可能沒有答案。但是因為我在搜索中沒有找到任何有用的結(jié)果,所以我決定問問它。PS 我知道對于 a String,該toString方法會處理案例 1。
查看完整描述

3 回答

?
手掌心

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

您不能重載強制轉(zhuǎn)換運算符。Java 不支持它,而且可能永遠不會。

要將單個值轉(zhuǎn)換為所需類的實例,我們使用靜態(tài)工廠方法。

public static Person fromAge(int age) {
    return new Person(age);
}

他們通常返回一個部分構(gòu)造的對象。在上面的代碼片段中,一個新構(gòu)造的人只age設(shè)置了:其他字段將具有它們的默認值。

相反,我們使用吸氣劑。

public int getAge() { 
   return age;
}

但是,由于toString已經(jīng)存在,添加其他數(shù)據(jù)類型也是有意義的。

toInt當它應(yīng)用于我時(作為Person類的一個實例)沒有任何意義??赡苁俏业纳砀?、體重、年齡、今天去洗手間的次數(shù)等等。我不能用一個整數(shù)來代表我自己,大多數(shù)班級也不能。

另一方面,toString可以很好地完成這項工作:我可以給你 (read return ) 我的愛好、我的生物識別信息,甚至我的照片的總結(jié)?;蛘呶铱梢詫⑺艚o默認實現(xiàn),它仍然可以令人滿意地表示一個對象。


查看完整回答
反對 回復(fù) 2023-01-05
?
慕標5832272

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

您不會為此使用強制轉(zhuǎn)換,只需在您的 Person 類中編寫方法來獲取這些值。

public int getAge(){
  return age;
}


查看完整回答
反對 回復(fù) 2023-01-05
?
12345678_0001

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

所以我只做過一次,我不確定我做的方法是否合適。

但我的方法是一個名為 的方法typeConverter,我會給它一個objectas parameter,然后你可以parameter看看它是什么對象類型,然后用你的值創(chuàng)建一個新的 Person。

雖然這種方法可能會導致問題,但當您的班級有兩個integer fields. 但我認為你可以找到一個解決方案,通過給它另一個參數(shù)來定義,你想將它轉(zhuǎn)換到哪個字段。

我真的很抱歉我的英語不好,但我希望你能明白原則。


查看完整回答
反對 回復(fù) 2023-01-05
  • 3 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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