[英]Is there a way to output the java data type to the console?
我正在嘗試調試我繼承的程序。 這個程序包含字符串,數組列表和集合,類型之間的大量轉換,我需要做一些字符串操作( substring
等)
當打印到控制台時,數據看起來像字符串(例如,它是一行文本,如Johnson, John
或Chicago Region
),但我的代碼錯誤輸出各種index out of range
錯誤,這表明我的代碼要轉換為字符串不工作。
我想試着找出正在進入的數據類型,並讓我的方法驗證程序是否按預期運行。 有沒有辦法在Java中找到字段類型? 在一個完美的世界中,我可以在每一步生成控制台輸出,它會給我數據值,無論是字符串,數組列表還是集合。 可以這樣做嗎?
給定任何對象的實例,您可以調用它的getClass()方法來獲取描述對象類型的Class對象的實例。
使用Class對象,您可以輕松打印它的類型名稱:
Integer number=Integer.valueOf(15);
System.out.println(number.getClass().getName());
此打印用於控制類的完全限定名稱,例如:
java.lang.Integer
如果您想要更簡潔的輸出,可以使用:
Integer number=Integer.valueOf(15);
System.out.println(number.getClass().getSimpleName());
getSimpleName()僅為您提供類的名稱:
Integer
打印原始變量的類型有點復雜:有關詳細信息,請參閱此SO問題 。
對於任何對象x
,您可以打印x.getClass()
。
做.class.getName();
在任何對象中
如果您只想打印類型, instance.getClass()
是要走的路。 如果要根據類型分支行為,也可以使用instanceof
if ( x instanceof String )
{
// handle string
}
使用getClass()
方法。
Object o;
System.out.println(o.getClass());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.