import java.sql.*;
import java.util.ArrayList;
import java.util.Iterator;
public class ConnectionPoolImpl1 implements ConnectionPool{
private ConnectionProvider provider=new ConnectionProvider();
private final ArrayList<Connection> pool=new ArrayList<Connection> ();
private int poolSize=5;
public ConnectionPoolImpl1(){}
public ConnectionPoolImpl1(int poolSize){
this.poolSize=poolSize;
}
public Connection getConnection()throws SQLException{
synchronized(pool){
if(!pool.isEmpty()){
int last=poolSize-1;
Connection con=pool.remove(last);
return con;
}
}
}
public void releaseConnection(Connection con)throws SQLException{
synchronized(pool){
int currentSize=pool.size();
if(currentSize<poolSize){
pool.add(con);
return;
}
}
try{
con.close();
}catch(SQLException e){e.printStackTrace();}
}
protected void finalize(){
close();
}
public void close(){
Iterator iter=pool.iterator();
while(iter.hasNext()){
try{
iter.next().close();
}catch(SQLException e){
e.printStackTrace();
}
}
pool.clear();
}

}
以上程序中ArrayList<Connection>报错说仅当源级别为5.0时以参数化的类型才可用,请问该怎么解决啊?我的JRE是1.6_06的。

解决方案 »

  1.   

    你的编译级别大概是1.4的,难道出错信息没说:
    如果用的是Eclipse,看看Project的Property,
    JDK Compliance的Compiler compliance level是多少.
    尽管你的JDK是1.6,但并不能保证compliance level是1.5以上.
      

  2.   

    和你编译的参数有关. 
    如果你是用ant来进行编译的, 看看javac中的source 和 compiler参数. 
      

  3.   

    我用的是eclipse,请问该怎么该呢?
      

  4.   

    选中项目, 然后右键 > Properties > Java Compiler里面有很多参数. 
    可以选中Enable project specific settings然后修改该项目的编译参数.