我是Java的新手。 Eclipse给了我错误
此方法必须返回类型
的结果我想返回String str,如果我在所有for循环之后放入str,我会得到未初始化的局部变量。我怎么能这样编码呢
public String getQuadraticFactors() {
String str;
ArrayList<Integer> prFactors = new ArrayList<Integer>();
ArrayList<Integer> qsFactors = new ArrayList<Integer>();
ArrayList<Integer> p = getPRIntegerFactors(a), r = getPRIntegerFactors(a), q = getQSIntegerFactors(c),
s = getQSIntegerFactors(c);
System.out.println(p + "*********" + q);
System.out.println(p.get(0));
// String str2 = "jjjhljl";
String str2 = "(" + p + "x + " + q + ")(" + r + "x +" + s + ")";
for (int k = 0; k < p.size(); k++) {
// System.out.print(k);
for (int l = 0; l < q.size(); l++) {
// System.out.print(k);
for (int m = 0; m < p.size(); m++) {
for (int n = 0; n < q.size(); n++) {
if (p.get(k) * r.get(m) == a && p.get(k) * s.get(n) + q.get(l) * r.get(m) == b
&& q.get(l) * s.get(n) == c) {
System.out.println(a);
System.out.println(p.get(k) * r.get(m));
return str = "(" + p.get(k) + "x + " + q.get(l) + ")(" + r.get(m) + "x + " + s.get(n) + ")";
}
}
}
}
}
}
答案 0 :(得分:0)
您可能永远不会点击您的退货声明。要解决此问题,只需在方法的最底部添加一个return语句,该语句返回一个空字符串或您要发送的任何值,以表示
private void scaleAndUnscale() {
ScaleAnimation scal_grow = new ScaleAnimation(0, 1.2f, 0, 1.2f, Animation.RELATIVE_TO_SELF, (float) 0.5, Animation.RELATIVE_TO_SELF, (float) 0.5);
scal_grow.setDuration(1500);
scal_grow.setFillAfter(true);
image1.startAnimation(scal_grow);
scal_grow.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
ScaleAnimation unscal_grow = new ScaleAnimation(1.2f, 1.0f, 1.2f, 1.0f, Animation.RELATIVE_TO_SELF, (float) 0.5, Animation.RELATIVE_TO_SELF, (float) 0.5);
unscal_grow.setDuration(1500);
unscal_grow.setStartOffset(1500);
unscal_grow.setFillAfter(true);
image1.startAnimation(unscal_grow);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
此if语句对于所有情况都是false。有时候你永远不会遇到这个if语句是假的情况,但是JVM只需要保证如果它是假的话就有东西要返回。
答案 1 :(得分:0)
实际上,当你的某些for循环没有运行时,你需要有一个替代方案。只需用更好的价值初始化你的str,在底部检查它。如果为null则抛出异常或初始化它(取决于您的代码样式)。在返回之前检查时,它将始终具有值(或者您抛出异常)。