该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-31
最后修改:2010-12-31
http://www.iteye.com/topic/856221?page=4#1826917 看看common-lang的StringUtils中的实现,优秀的代码大家应该没什么意见 Java代码 1. public static boolean isNumeric(String str) { 2. if (str == null) { 3. return false; 4. } 5. int sz = str.length(); 6. for (int i = 0; i < sz; i++) { 7. if (Character.isDigit(str.charAt(i)) == false) { 8. return false; 9. } 10. } 11. return true; 12. } public static boolean isNumeric(String str) { if (str == null) { return false; } int sz = str.length(); for (int i = 0; i < sz; i++) { if (Character.isDigit(str.charAt(i)) == false) { return false; } } return true; } Integer中的public static int parseInt(String s, int radix)只是包含了大量的检测代码,然后实现和上面代码雷同,个人认为能捕获的异常一定要捕(非RuntimeException),能够用正常代码处理的就不要使用异常,不然既会影响性能,又不符合异常机制的设计初衷 我想说: 你看看jdk 1.5 中的 swing 中的 JComponent类的源代码第4850行到4863行如下: try { Graphics pcg = paintingComponent.getGraphics(); g = (pcg == null) ? null : pcg.create(); pcg.dispose(); } catch(NullPointerException e) { g = null; e.printStackTrace(); } if (g == null) { System.err.println("In paintImmediately null graphics"); return; } try { boolean paintCompleted = false; if (hasBuffer) { paintCompleted = paintDoubleBuffered(paintingComponent, bufferedComponent, g, paintImmediatelyClip.x, 看到红色的代码没有。 那么,当有人信奉不能用异常做判断的人看到Sun的这样的代码,你难到要找Sun的设计打架去... 也许你可以问他:“你是不是没看过<<Effective Java>>”呀? 我只是花了二分钟就找到了这样的代码... 我要说明的是:用异常做判断是可以的... 我只写到这,不会再写下去了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-31
最后修改:2010-12-31
sun写的垃圾代码多了去了
不过这段代码是为了防御脑残程序员写的....... 要多么的脑残的测试代码才能触发这行红色的代码呢? 不说你的主类build好了里面的g是空的也说的过去 但create方法能返回空.......怎么样混乱的继承体系啊 |
|
返回顶楼 | |
发表时间:2010-12-31
一味的信奉神,神也有马失前蹄的时候
|
|
返回顶楼 | |
发表时间:2010-12-31
最后修改:2010-12-31
其实我不明白楼主想要表达什么
if (g == null) { System.err.println("In paintImmediately null graphics"); return; } 哪有问题了? 有本事你从JDK里找一个用异常验证string是不是数字的方法。 有时候,说话,沟通也是一种学问。 先不投隐藏,看看你能蹦多高。 |
|
返回顶楼 | |
发表时间:2010-12-31
犯规的有两种:一是不懂规则,二是精通规则.
|
|
返回顶楼 | |
发表时间:2010-12-31
楼主的精神是可嘉的,但是又一次看到被投隐藏~~~~~
貌似我积分不够,还不知道如何投隐藏~~~~~~~ |
|
返回顶楼 | |
发表时间:2010-12-31
try { Graphics pcg = paintingComponent.getGraphics(); g = (pcg == null) ? null : pcg.create(); pcg.dispose(); } catch(NullPointerException e) { g = null; e.printStackTrace(); } if (g == null) { System.err.println("In paintImmediately null graphics"); return; } 这地方的异常用法跟你的根本不靠边呀! 因为这地方的NullPointerException并不是为了得到“In paintImmediately null graphics”而用的 g = (pcg == null) ? null : pcg.create(); pcg.dispose(); 这地方的异常时为了捕获它的,为了防止出现pcg为null的情况. |
|
返回顶楼 | |
发表时间:2010-12-31
楼主是个有思想的,我就是来看楼主骂街的,骂倒人云亦云,迷信权威之徒。
|
|
返回顶楼 | |
发表时间:2010-12-31
最后修改:2010-12-31
以sun的一段LJ代码来为自己开脱感觉有点......
如果你当个小公务员了,你不会说:“你看天朝xx都贪污了xx,我贪污xx怎么了?” 权威不是标准,标准不是权威,在合适的地方用合适的方式做合适的事,仅此而已。 |
|
返回顶楼 | |
发表时间:2010-12-31
反正我的原则就是不迷信
|
|
返回顶楼 | |