簡體   English   中英

如何從字符串創建Java內置對象

[英]How do I create Java built-in object from string

假設我想從string創建一個Java對象。

Object obj = Class.forName("com.my.object.MyObject").newInstance();

我能夠創建MyObject。 我的問題是如何從字符串中創建Java內置對象,如Long或String。 我需要這樣做,因為我只能以文本格式知道運行時對象的類型。

我做了這個,但沒有奏效。

Object obj = Class.forName("java.lang.Long").newInstance();

java.lang.Long沒有無參數構造函數,所以你不能像那樣調用newInstance 相反,您必須使用正確的參數查找構造函數,構建參數數組,然后調用構造函數。

Constructor constr = Class.forName("java.lang.Long").getConstructor(String.class);
Object myLong = constr.invoke("5");

閱讀newInstance()的文檔,它會告訴你它調用了類的無參數構造函數。 如果內置(或任何其他)類具有這樣的構造函數,則可以創建它。 否則,您必須使用Class.getConstructor()調用特定的構造函數,並將相應的參數傳遞給它。 因此,要調用new Long(String)構造函數,例如:

Class.forName("java.lang.Long")
     .getConstructor(String.class)
     .newInstance("12345");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM