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的。
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的。
如果用的是Eclipse,看看Project的Property,
JDK Compliance的Compiler compliance level是多少.
尽管你的JDK是1.6,但并不能保证compliance level是1.5以上.
如果你是用ant来进行编译的, 看看javac中的source 和 compiler参数.
可以选中Enable project specific settings然后修改该项目的编译参数.