我正在尝试使用此方法在文件podaci.java中保存我的数据:
public Podaci(double brojKalorijaId, int dan, int mjesec, int godina, int proteini,
int ugljikohidrati, int masti, int godine, int masa, int aktivnost, int hr) {
this.brojKalorijaId = brojKalorijaId;
this.dan = dan;
this.mjesec = mjesec;
this.godina = godina;
this.proteini = proteini;
this.ugljikohidrati = ugljikohidrati;
this.masti = masti;
this.godine = godine;
this.masa = masa;
this.aktivnost = aktivnost;
this.hr = hr;
}
我在其他.java文件中调用了这样的方法:
double brojKalorija = (double) (ugljikohidratiInt * 4
+ proteiniInt * 4 + mastiInt * 4)
- (((-20.4022 + (0.4472 * hrInt)
- (0.1263 * masaInt) + (0.074 * godineInt)) / 4.184) * aktivnostInt);
brojKalorija = round(brojKalorija, 2,
BigDecimal.ROUND_HALF_UP);
poruka = "U suficitu ste ~ " + brojKalorija
+ " kalorija.";
JOptionPane.showMessageDialog(null, poruka);
/*here is error*/ Podaci noviPodaci = new Podaci(brojKalorija, danInt,
mjesecInt, godinaInt, proteiniInt,
ugljikohidratiInt, mastiInt, godineInt,
masaInt, aktivnostInt, hrInt);
DatabaseUtils.spremiPodatke(noviPodaci);
错误说:
The method Podaci(double, int, int, int, int, int, int, int, int, int, int) is undefined for the type new ActionListener(){}
为什么我会收到此错误?
编辑:podaci.java代码在这里,我试图将double更改为BigDecimal,无法正常工作package podaci;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "podaci.podaci_izracuna")
public class Podaci {
@Id
@Column(name = "brojKalorija_ID")
@GeneratedValue
private double brojKalorijaId;
@Column(name = "dan")
private int dan;
@Column(name = "mjesec")
private int mjesec;
@Column(name = "godina")
private int godina;
@Column(name = "proteini")
private int proteini;
@Column(name = "ugljikohidrati")
private int ugljikohidrati;
@Column(name = "masti")
private int masti;
@Column(name = "godine")
private int godine;
@Column(name = "masa")
private int masa;
@Column(name = "aktivnost")
private int aktivnost;
@Column(name = "heartRate")
private int hr;
public Podaci(double brojKalorijaId, int dan, int mjesec, int godina, int proteini,
int ugljikohidrati, int masti, int godine, int masa, int aktivnost, int hr) {
this.brojKalorijaId = brojKalorijaId;
this.dan = dan;
this.mjesec = mjesec;
this.godina = godina;
this.proteini = proteini;
this.ugljikohidrati = ugljikohidrati;
this.masti = masti;
this.godine = godine;
this.masa = masa;
this.aktivnost = aktivnost;
this.hr = hr;
}
public Podaci() {}
public double getBrojKalorijaId() {
return brojKalorijaId;
}
public int getDan() {
return dan;
}
public int getMjesec() {
return mjesec;
}
public int getGodina() {
return godina;
}
public int getProteini() {
return proteini;
}
public int getUgljikohidrati() {
return ugljikohidrati;
}
public int getMasti() {
return masti;
}
public int getGodine() {
return godine;
}
public int getMasa() {
return masa;
}
public int getAktivnost() {
return aktivnost;
}
public int getHr() {
return hr;
}
}
答案 0 :(得分:1)
该行
Podaci noviPodaci = new Podaci(...);
无法发出错误消息,指出无法找到名为“Pocaci”的方法。 Java编译器应该知道new Podaci(...)
指的是构造函数而不是方法。
我能想到的唯一解释是:
发生错误消息的文件中的某些早期语法错误会让编译器彻底混淆。补救措施:修复之前的错误!!
您的IDE很困惑。补救措施:尝试重新启动IDE并“刷新”,并重新编译所有相关文件。
您正在编译的代码与您看到的代码不同...并向我们展示。
您错误地转录了错误消息。
答案 1 :(得分:0)
似乎问题在于您传递给方法的某个变量的定义。检查或发布每个初始化的位置...确保它们都是INT。