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

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

在java泛型中獲取字符串的長(zhǎng)度

在java泛型中獲取字符串的長(zhǎng)度

繁星coding 2022-11-30 16:39:48
我正在學(xué)習(xí) Java 泛型,我試圖編寫一個(gè)非常簡(jiǎn)單的代碼,它必須打印參數(shù)的類型,在我的例子中只是為了展示目的,我只嘗試 String 類型,直到我打印了類類型,但是對(duì)于字符串類型,當(dāng)我使用 .length() 來獲取我的字符串的長(zhǎng)度時(shí),它顯示了一個(gè)錯(cuò)誤:找不到符號(hào)System.out.println(obj1.length()); //不工作既然類是類 java.lang.String,為什么我們不能在泛型中使用 .length() ?import java.util.*;import java.lang.*;public class GenericMethodTest {   public static < E > void sumOfGenericValues(E obj1, E obj2) {     System.out.println(obj1.getClass());      System.out.println(obj1.length()); //dosen't work   }   public static void main(String args[]) {      String fn = "JK", ln = "Rowling";      sumOfGenericValues(fn, ln);   }}
查看完整描述

2 回答

?
白豬掌柜的

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

那是因?yàn)槟阒浪且粋€(gè)String,但編譯器和方法不知道將接收什么作為 Type 參數(shù)。


您可以編輯您的方法,這樣如果它接收到一個(gè)字符串,它將打印它的長(zhǎng)度。為此,您必須首先將對(duì)象轉(zhuǎn)換為字符串,以便您可以使用字符串方法。


 public static < E > void sumOfGenericValues(E obj1, E obj2) {

        System.out.println(obj1.getClass());

        if(obj1 instanceof String) {

            System.out.println(((String)obj1).length());

        }

 }


查看完整回答
反對(duì) 回復(fù) 2022-11-30
?
慕仙森

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

該方法不能確保它收到一個(gè)String. 您可以String通過將類型參數(shù)更改E為E extends String


例子:


public static <E extends String> void sumOfGenericValues(E obj1, E obj2) {

    System.out.println(obj1.length());

    System.out.println(obj2.length());

}


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

添加回答

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