1 回答

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
同時(shí)我發(fā)現(xiàn)了這個(gè)問(wèn)題。當(dāng)我對(duì)生成器進(jìn)行游戲原型設(shè)計(jì)時(shí),我使用了:
csvBuilder.append(field.getClass().getName().replaceAll("(.)(\\p{Upper})", "$1_$2").toUpperCase());
產(chǎn)生了類(lèi)似的輸出JAVA.LANG.REFLECT._FIELD|java.lang.reflect.Field||
因?yàn)槲抑皇峭浟宋覍?shí)際上改進(jìn)了它以使用實(shí)際的類(lèi)對(duì)象作為函數(shù)的參數(shù)。在問(wèn)這個(gè)問(wèn)題之前,我對(duì)代碼進(jìn)行了一些 Sonar 修復(fù),但沒(méi)有注意到我修復(fù)了 WARN 以刪除方法.getClass()
調(diào)用,因?yàn)槲乙呀?jīng)傳入了一個(gè)類(lèi)(我認(rèn)為這不會(huì)有什么不同,因?yàn)樗皇且粋€(gè)警告)。每日道德提示——永遠(yuǎn)不要忽視警告。
因此,問(wèn)題中提供的代碼片段現(xiàn)在可以在一個(gè)孤立的虛擬項(xiàng)目中正常工作,并且還可以使用固定行集成到一個(gè)更復(fù)雜的項(xiàng)目中:
csvBuilder.append(field.getName().replaceAll("(.)(\\p{Upper})", "$1_$2").toUpperCase());
同樣正如有人在評(píng)論中建議的那樣,field.setAccessible(true);
可以刪除它,因?yàn)樗鼘?duì)于該方法的目的是無(wú)用的。
添加回答
舉報(bào)