如何将字符串转换为自定义对象

时间:2018-09-29 19:44:20

标签: java

我不知道该如何转换持有人以进行测试。我收到错误“不兼容的类型”字符串无法转换为MeterReading。我不确定在构造函数中将r分配给什么。

concurrency

读表类

real :: M(n,n)
integer :: n, col 
real :: b(n)
M(n:col) = b(:)

2 个答案:

答案 0 :(得分:1)

让我们逐步分解代码:

String holder = String.valueOf(m.getReading());

因此,从现有的MeterReading中获得reading并将其转换为String

MeterReading test = holder;

接下来,您正在尝试将String分配给MeterReading。由于这两个对象完全不同,因此会导致编译时错误。

当前,要创建MeterReading,请使用以下构造函数:

public MeterReading(float r, LocalDateTime date, String t, Meter m){
    reading = r;
    System.out.println(date);
    System.out.println(t);
    System.out.println(m);
}

很明显,如果仅给定String值,则不需要此构造函数。您可以做的是创建一个新的构造函数,将该构造函数接受为参数并将其转换回浮点数:

public MeterReading(String holder){
    reading = Float.valueOf(holder);
}

这样,您可以执行以下操作:MeterReading test = new MeterReading(holder);

请注意,您的flag字符串变量将用此构造函数初始化,即null

答案 1 :(得分:0)

您需要一个MeterReading构造函数,该构造函数将String作为参数,然后将其分配给该对象。