如何将整数转换为int?

我正在开发一个Web应用程序,其中数据将在客户端和服务器端之间传输。

我已经知道JavaScript int!= Java int。 因为,Java int不能为null,对。 现在这是我面临的问题。

我将我的Java intvariables改为Integer。

public void aouEmployee(Employee employee) throws SQLException, ClassNotFoundException { Integer tempID = employee.getId(); String tname = employee.getName(); Integer tage = employee.getAge(); String tdept = employee.getDept(); PreparedStatement pstmt; Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost:3306/general"; java.sql.Connection con = DriverManager.getConnection(url,"root", "1234"); System.out.println("URL: " + url); System.out.println("Connection: " + con); pstmt = (PreparedStatement) con.prepareStatement("REPLACE INTO PERSON SET ID=?, NAME=?, AGE=?, DEPT=?"); pstmt.setInt(1, tempID); pstmt.setString(2, tname); pstmt.setInt(3, tage); pstmt.setString(4, tdept); pstmt.executeUpdate(); } 

我的问题在这里:

 pstmt.setInt(1, tempID); pstmt.setInt(3, tage); 

我不能在这里使用Integervariables。 我试着用intgerObject.intValue(); 但它使事情更复杂。 我们有其他转换方法或转换技术吗?

任何修复会更好。

正如其他地方所写:

  • 对于Java 1.5和更高版本,您不需要执行(几乎)任何操作,而是由编译器完成。
  • 对于Java 1.4和之前的版本,使用Integer.intValue()将Integer转换为int。

但是,正如你写的,一个Integer可以为null,所以在尝试转换为int (或者冒险得到一个NullPointerException )之前检查是明智的。

 pstmt.setInt(1, (tempID != null ? tempID : 0)); // Java 1.5 or later 

要么

 pstmt.setInt(1, (tempID != null ? tempID.intValue() : 0)); // any version, no autoboxing 

* 使用默认为零,也可能无能为力,显示警告或…

我大多不喜欢使用自动装箱(第二个样本行),所以很清楚我想要做什么。

既然你说你正在使用Java 5,你可以使用setInt与一个Integer由于autounboxing: pstmt.setInt(1, tempID)应该工作得很好。 在早期的Java版本中,您将不得不自己调用.intValue()

相反的工作,以及…分配一个int Integer将自动导致int使用Integer.valueOf(int)自动绑定。

即使您正在使用Java 5 JDK,也许您将IDE的编译器设置设置为Java 1.4模式? 否则,我同意已经提到过自动装箱/拆箱的其他人。

Java将Integer转换为int并自动返回(除非您仍然使用Java 1.4)。

另一个简单的方法是:

 Integer i = new Integer("10"); if (i != null) int ip = Integer.parseInt(i.toString());