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());
}
}

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());
}
添加回答
舉報(bào)