我不知道该如何转换持有人以进行测试。我收到错误“不兼容的类型”字符串无法转换为MeterReading。我不确定在构造函数中将r分配给什么。
concurrency
读表类
real :: M(n,n)
integer :: n, col
real :: b(n)
M(n:col) = b(:)
答案 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作为参数,然后将其分配给该对象。