论坛首页 Java企业应用论坛

Java 7 新特性 -- 实战篇

浏览 31618 次
该帖已经被评为精华帖
作者 正文
   发表时间:2011-08-10  
swith的改进还是很有用处的~
0 请登录后投票
   发表时间:2011-08-10  
很给力啊  神马时候变得怎么写都可以就厉害了
0 请登录后投票
   发表时间:2011-08-10  
JamesFSH 写道
say4ever2u 写道
清晨阳光 写道
楼主的List<? extends String>很强大!String是final的~~


List<? extends String> list2 = new ArrayList<String>();

没有试就不要说 java5里都可以!


编译能通过不表示就是对的,<? extends String>是bounded wildcast, 意识是说在编译期间,list里面装的是一个unknown type的object, 但是此object必须是string的子类,或者string.

string是final的,不可能有子类。 List<? extends String>毫无意义。

bounded wildcast 通常用来做为method的参数。


我说你够矫情的, 编译通过还不表示对的。。。。
0 请登录后投票
   发表时间:2011-08-10  
即使有了更好的特性,真真等到他大规模运用也得要几年的时间。以后再慢慢研究吧。
0 请登录后投票
   发表时间:2011-08-10  
现在还在用1.4,悲哀啊
0 请登录后投票
   发表时间:2011-08-10  
在try中给定资源并能自动关闭这点还是很不错的。不过个人不喜欢catch一大堆异常,switch支持字符串也不错,但是都已经喜欢了if-else,其实也不影响了。
0 请登录后投票
   发表时间:2011-08-10  
好贴,期待继续
0 请登录后投票
   发表时间:2011-08-10  
好东西,谢谢分享了
0 请登录后投票
   发表时间:2011-08-10  
autoClose和switch更有用,其他的特性感觉用处不大,呵呵。
估计刚出来,慢慢人用的多了才能评价出用处大不大
0 请登录后投票
   发表时间:2011-08-10  
b_l_east 写道
抛出异常那个楼主说的不对吧,Java6也支持在方法后面throws几个异常,这跟eclipse的版本有关,老的eclipse就是自动生成抛出多个异常的,现在eclipse只选择它们的父类抛出。


抛出异常? 抛哥好久没露面啦~   开个玩笑

你说的java6也支持在方法后面 throws几个异常,是这样的
  public static void reThrowException(String exceptionName) throws FirstException,SecondException{
		try {
			if(exceptionName.equals("first"))
				throw new FirstException();
			else
				throw new SecondException();
		} catch (FirstException e) {
			throw e;
		} catch (SecondException e) {
			throw e;
		}
	}

    只有当你明确的在catch里写了处理FirstException和SecondException时,你才可以在方法后写 throws FirstException和SecondException,你当然可以写成 throws Exception甚至 Throwable,因为它们都继承自Exception和Throwable吗。你只能写catch里异常类型的父类,不能写子类。
   
    而在Java SE7中,你却可以在throws 后面跟着 catch中异常类型的子类
   
    public static void reThrowException(String exceptionName)  
        throws FirstException, SecondException{  
       try {  
         if ("first".equals(exceptionName))  
            throw new FirstException();  
         else  
            throw new SecondException();  
       } catch (Exception e) {  
         throw e;  
       }  
    }  
    


    因为Java SE7中,编译器可以判断出这里只能抛出FirstException和SecondException,所以虽然你在catch里catch了Exception,但是你却可以在throws后面写 Exception的子类 FirstException和SecondException。这才是Java SE7改进的地方。
    你没有仔细看呦~
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics