Tag: illegalargumentexception

Apache POI:计算公式时出现exception

我在这里发布了很多问题并提到了POI文档,但我无法解决这个问题。 问题:当试图重新计算公式时,我得到一个例外。 式: =CONCATENATE(“#DFLT=”,COUNTIF(C5:C390,”=DEFAULTERS”),”; #NP=”,COUNTIF(C5:C390,”=NOT PAID”),”; #PCsh=”,COUNTIF(C5:C390,”=Paid Cash”),”; #PChk=”,COUNTIF(C5:C390,”=Paid Cheque”),”; #PNeft=”,COUNTIF(C5:C390,”=Paid Neft”)) 例外: 10-22 17:13:15.177: E/AndroidRuntime(26300): FATAL EXCEPTION: main 10-22 17:13:15.177: E/AndroidRuntime(26300): java.lang.IllegalArgumentException: Unexpected eval class (org.apache.poi.ss.formula.eval.MissingArgEval) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.eval.OperandResolver.coerceValueToString(OperandResolver.java:275) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.functions.TextFunction.evaluateStringArg(TextFunction.java:40) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.functions.TextFunction$8.evaluate(TextFunction.java:249) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:132) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:525) 10-22 17:13:15.177: E/AndroidRuntime(26300): […]

在Java中处理未接受的方法参数最好的是什么?

当你在一个DAO对象中写一个方法,并且你不希望这个方法接受某些输入时,为了讨论起见,说它不允许空参数。 你如何实现这一点,考虑到这种方法将来可能会被新的团队成员重用。 我这样做的方式是: 在接口中,我在方法javadoc中记录了参数a,b和c不能为null。 在方法内部,我首先检查空值,如果a,b或c中的任何一个为null,则抛出IllegalArgumentException。 但是,如果未来的一些开发人员只是读取方法签名并决定它需要什么并开始使用它,而不关注这个细节,更糟糕的测试并没有揭示它。 不会发生NULL指针exception,我们收到一条有用的错误消息,但是我们仍然会在生产中遇到一个可以避免的错误。 有没有办法在编译时强制执行此操作? 我对此表示怀疑,但这样做最安全,最糟糕的开发人员方法是什么?

使用ImageIO.read获取错误(getClass()。getResourceAsStream(input == NULL)?

当我使用以下代码时,我不断收到此错误: try { image=ImageIO.read(getClass().getResourceAsStream(“build/classes/javaproject/Space.gif”)); } catch (IOException ex) { lastException=ex; } 它给了我“input == null”错误。 我已经试图找到一个解决方案(几个已回答的问题已经有解决方案,但那些对我不起作用)但我没有运气。 例如,这个与我的问题非常相似,但我似乎无法确切地知道将图像文件放在哪里。 我注意到大多数都是通过简单的文件放置来解决的,所以当我在NetBeans上“构建”和“src”时有些人拥有“bin”时更加令人困惑。 此外,我意识到这条路可能是错误的,但我已经尝试了许多不同的方式,它似乎没有与它们中的任何一个一起工作。 我真的很感激任何帮助……

IllegalArgumentException:颜色参数超出预期范围:红绿蓝

当我用JUnit测试我的代码时,发生以下错误: java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue 老实说,我不知道为什么。 我的代码不是很长,所以我想发布它以获得更好的帮助。 BufferedImage img = ImageIO.read(f); for (int w = 0; w < img.getWidth(); w++) { for (int h = 0; h < img.getHeight(); h++) { Color color = new Color(img.getRGB(w, h)); float greyscale = ((0.299f * color.getRed()) + (0.587f * color.getGreen()) + (0.144f […]

非法论据例外

我正在研究一个非常简单的点类,但我收到一个错误,我无法确定String / double问题发生在哪里或如何修复它。 public String getDistance (double x1,double x2,double y1,double y2) { double X= Math.pow((x2-x1),2); double Y= Math.pow((y2-y1),2); double distance = Math.sqrt(X + Y); DecimalFormat df = new DecimalFormat(“#.#####”); String pointsDistance = (“”+ distance); pointsDistance= df.format(pointsDistance); return pointsDistance; } 和测试代码 double x1=p1.getX(), x2=p2.getX(), y1=p1.getY(), y2=p2.getY(); pointsDistance= p1.getDistance(x1,x2,y1,y2); 编辑 我忘了添加我收到的错误: Exception in thread “main” java.lang.IllegalArgumentException: Cannot […]

空检查错误消息为“为空”或“为空”

在Java代码中执行空检查,并且为空值抛出IllegalArgumentExceptions时,您使用什么类型的消息模板? 我们倾向于使用这样的东西 public User getUser(String username){ if (username == null){ throw new IllegalArgumentException(“username is null”); } // … } 更好的是:“为空”或“为空”,为什么? 对我来说,“无效”感觉更自然。

IllegalArgumentException:文件包含路径分隔符Android

我正在尝试写入我的HTC One上的输出文件并在LogCat中获取以下消息: 11-21 08:05:18.228:W / System.err(6609):java.lang.IllegalArgumentException:File /storage/emulated/0/com.example.pattern1/myfile.txt包含路径分隔符 源代码如下: protected void writeToFile(String string){ File patternDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath().toString()+”/com.example.pattern1/myfile.txt”); patternDirectory.mkdirs(); FileOutputStream outputStream; try { outputStream = openFileOutput(patternDirectory.getAbsolutePath().toString(), Context.MODE_APPEND); outputStream.write(string.getBytes()); TextView t = (TextView)findViewById(R.id.bottomMidText); t.setText(patternDirectory.getAbsolutePath().toString()); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } 如果有人可以帮助确定问题,我将不胜感激。

为什么在使用reflection调用方法时,“对象不是声明类的实例”?

public class Shared { public static void main(String arg[]) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Shared s1 = new Shared(); Object obj[] = new Object[2]; obj[0] = “object1”; obj[1] = “object2”; s1.testParam(null, obj); Class param[] = new Class[2]; param[0] = String.class; param[1] = Object[].class; //// how to define the second parameter as array Method […]

如何正确使用reflection来访问Telephony Manager中的隐藏方法

我不确定我是否在反思本身或我想要获得的方法上遇到麻烦。 我想做的是从类中调用函数setLine1Number: com.android.internal.telephony.gsm.GSMPhone 这样我就可以将我的号码正确插入手机,因为它不需要在我的SIM卡中。 因此,我希望能够调用函数getLine1Number并让它返回我设置的相同数字。 reflection似乎是能够使用此function的唯一方法,因为它不在公共API中。 我写过这篇文章,但不断获得非法论证exception。 这是我的代码: String className = “com.android.internal.telephony.gsm.GSMPhone”; Class classToInvestigate = Class.forName(className); Object arglist[] = new Object[3]; arglist[0] = new String(“Phone Number”); arglist[1] = new String (“16035552412”); // Not a real phone number arglist[2] = null; Class[] paramTypes = new Class[3]; paramTypes[0] = String.class; paramTypes[1] = String.class; paramTypes[2] = Message.class; Method […]

调用方法时错误的参数数量错误

我有类AClass和方法someMethod获取Object数组作为参数。 public class AClass { public void someMethod(Object[] parameters) { } } 在main中,当我尝试在我创建的对象上调用此方法并将对象数组作为此方法的参数时 Object[] parameters; // lets say this object array is null Class class = Class.forName(“AClass”); Object anObject = class.newInstance(); Method someMethod = class.getDeclaredMethod(“someMethod”, parameters.getClass()); someMethod.invoke(anObject, parameters); 我得到“错误的参数数量错误”。 我错过了什么?