![](/img/trans.png)
[英]How to convert string type (java) and store in date data type in mysql?
[英]Java: How to convert a String into an subclass data type?
我想將String轉換為子類數據類型,怎么做呢? 還是有可能的?
我有一個抽象類Acct
公共抽象類SinAcct擴展了Acct
公共類SavAcct擴展了SinAcct
在SavAcct中,有一個構造函數
public SavAcct(String acctNo, String name, ConsolidateAccount ownerAcct, double lastMonthBal){
super(acctNo,name,ownerAcct,lastMonthBal);
}
抽象類ConsolidateAccount擴展了Account
我想要新的SavAcct,
new SavAcct(array[1],array[2],array[3],Double.parseDouble(array[4])
但它是錯誤構造函數SavAcct(String,String,String,double)是未定義的
有人可以幫幫我嗎? PLS
如果你真的想將String轉換為其他類的對象。 您可以有三種可能的解決方案: -
創建一個構造函數,該構造函數將String作為參數並執行適當的轉換以創建Object。
有一個工廠方法,即getInstance(),它接受String參數並返回一個Object。
您可以使用一種方法,該方法可用於與上述相同的目的。
編輯
只是忘了提到String是一個在您的應用程序中無法修改或繼承的最終類。
public Static SubClass getInstance(String str){
SubClass obj = new SubClass();
// ***the choice of constructor depends upon how u have created ur class
//use str to form the SubClass object in following lines
return obj;
}
比你可以用它
SubClass newObj = SubClass.getInstance("String value here");
你應該有一個具體的類(非抽象類),擴展ConsolidateAccount
可以了
public class ConcreteAccount extends ConsolidateAccount
然后你可以使用這樣的東西。
ConsolidateAccount ownerAcct = new ConcreteAccount(array[3]);
new SavAcct(array[1],array[2],ownerAcct,Double.parseDouble(array[4]);
並在ConcreteAccount類中創建一個構造函數public ConcreteAccount(String str)
只是為了確保你沒有走錯路,而不是添加一個基本上需要調用super(acctNo,name,ownerAcct,lastMonthBal);
的新構造函數super(acctNo,name,ownerAcct,lastMonthBal);
像這個現有的構造函數,為什么不嘗試使用你的array[3]
鍵創建或查找ConsolidateAccount實例?
例如
ConsolidateAccount consolidateAccount = new ConcreteConsolidateAccount(array[3]);
new SavAcct(array[1],array[2],consolidateAccount,Double.parseDouble(array[4]);
ConcreteConsolidateAccount
是擴展ConsolidateAccount
的具體類。
看起來更合情合理。
當然我不知道圍繞ConsolidateAccount
邏輯,或者即使它有一個帶String
的構造函數,但這只是為了給你一個想法,因為看起來你需要調用SavAcct類的構造函數正在擴展(這由超級呼叫表示)。
你不能這樣做,因為String類是final。 你能組成代替繼承嗎? http://www.artima.com/designtechniques/compoinh.html
不可能,String是最終的。
java.lang.String
類是final
,所以你無法擴展它。 你最多可以包裝它。
你有一個字符串數組,你調用的構造函數需要ConsolidateAccount
在第三個位置。 您需要基於該第三個String
實例化ConsolidateAccount
的子類型。 沒有詳細信息可以幫助您如何做到這一點。 此外,您從1開始索引數組。數組從零開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.