如何将整数转换为整数?

2022-08-31 11:04:29

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

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

我将 Java int 变量更改为 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);

我不能在这里使用整数变量。我尝试过但它使事情变得更加复杂。我们还有其他转换方法或转换技术吗?intgerObject.intValue();

任何修复都会更好。


答案 1

正如在其他地方已经写过的:

  • 对于Java 1.5及更高版本,您不需要(几乎)做任何事情,它是由编译器完成的。
  • 对于 Java 1.4 及更早版本,请使用 从整数转换为整数。Integer.intValue()

但是正如你所写的,an可以是空的,所以在尝试转换为(或冒着得到一个)之前检查它是明智的。IntegerintNullPointerException

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

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

*使用默认值零,也可以不执行任何操作,显示警告或...

我最不喜欢使用自动装箱(第二个示例行),所以很明显我想做什么。


答案 2

既然你说你正在使用Java 5,你可以使用由于自动取消框:应该工作得很好。在早期版本的Java中,你必须打电话给自己。setIntIntegerpstmt.setInt(1, tempID).intValue()

反之亦然...将 分配给 将会自动导致 使用 自动装箱。intIntegerintInteger.valueOf(int)