当前位置: 首页 > 知识库问答 >
问题:

Java:如何将字符串转换为子类数据类型?

姚煜
2023-03-14

我想将String转换为子类数据类型,如何才能做到?或者这是可能的?

我有一个抽象类帐户

公共抽象类SinAcct扩展了Acct

一个公共类SavAcct扩展了SinAcct

在SavAcct中,有一个构造函数

public SavAcct(String acctNo, String name, ConsolidateAccount ownerAcct, double lastMonthBal){
        super(acctNo,name,ownerAcct,lastMonthBal);

    }

一个抽象类合并帐户扩展帐户

我想要一个新的SavAcct,

新的SavAcct(数组[1],数组[2],数组[3],Double.parse双(数组[4])

但它是错误的构造函数SavAcct(字符串,字符串,字符串,双)是未定义的

有人能帮我吗?请

共有3个答案

松旻
2023-03-14

你不能这样做,因为字符串类是最终的。你能做合成而不是继承吗?http://www.artima.com/designtechniques/compoinh.html

颜嘉誉
2023-03-14

你应该有一个具体类(非抽象类)来扩展Consolate帐户让我们说它是

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)

孔安福
2023-03-14

只是为了确保你没有走错路,而不是添加一个新的构造函数,它基本上需要调用super(acctNo、name、ownerAcct、lastMonthBal)像这个现有的构造函数一样,为什么不尝试使用数组[3]键创建或查找ConsolidateAccount实例呢?

例如。

ConsolidateAccount consolidateAccount = new ConcreteConsolidateAccount(array[3]);
new SavAcct(array[1],array[2],consolidateAccount,Double.parseDouble(array[4]);

其中ConcreteConsolate帐户是一个具体类,扩展Consolate帐户

看起来更明智。

当然,我不知道关于Consolate帐户的逻辑,或者即使它有一个构造函数,它接受String,但这只是给你一个想法,因为看起来你需要调用SavAcct正在扩展的类的构造函数(这是由超级调用指示的)。

 类似资料:
  • 所以,基本上。我不想知道是否有可能(如果有可能,如何),实际上把一个类在C#代码中直接转换成一个字符串?因此,基本上,该类中的所有内容都进入字符串。 这有点短,但我不知道怎么说得更清楚。

  • 我刚接触Apache POI和HttpClient,我很困惑。我的程序应该从excel单元格中获取值,并在HttpGet请求中使用该值。以下是不起作用的方法: wb.getSheetAt(0)。getRow(rowNumber)。get cell(3);是XSSFCell类型,我需要把它转换成一个字符串。这可能吗,还是我没有正确地提取这个值?

  • 问题内容: 我正在从在Varchar中具有原始提要的表中导入数据,我需要将varchar中的列导入到字符串列中。我尝试使用以及,但是却遇到了错误,因为有一些空字段,我需要将它们作为空或null检索到新表中。 请让我知道是否有相同的功能。 问题答案: 大胆猜测:如果您的值是一个空字符串,则可以使用NULLIF将其替换为NULL:

  • 问题内容: 我有一个,我需要一个。如何从一个转换为另一个? 问题答案: 好问题。我有以下五种 6种方法可以做到这一点。 注意:返回。因此有效地两者是相同的。 调用,这又设置了数组。 另一方面,调用以下程序包私有构造函数。 从源代码中的Java 8的源代码 因此似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。

  • 问题内容: 为了将类名存储在日志文件中,我将类类型的描述转换为字符串: 但是,我没有成功将其反向转换为类型的变量以在通用方法中使用它。 我该怎么办? 问题答案: 您可以从返回类,但是获取类名时需要使用项目的 模块 名。如果不使用模块名称,则它将返回,因为先前引用的类名称尚未完全由 模块名称 限定。您应该更改类名称字符串以表示您的类的完全限定名称:

  • 我的应用程序以JSON格式生成日志。日志如下所示: 目前,我正在将前面提到的日志行推入mongoDB。但是mongoDB将日期时间存储为字符串(这是预期的)。现在,我想在这些日志上运行一些数据处理工作,我更愿意将日期时间存储为mongoDB的原生ISODate数据类型。 我可以想到3种方法来做到这一点: i) 解析每个JSON日志行,将字符串转换为应用程序代码中的ISODate类型,然后插入它。缺