[英]How to convert Integer to int?
我正在開發一個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);
我不能在這里使用Integer變量。 我嘗試使用intgerObject.intValue();
但它使事情變得更加復雜。 我們還有其他轉換方法或轉換技術嗎?
任何修復都會更好。
正如其他地方所寫:
Integer.intValue()
,使用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
一起使用: pstmt.setInt(1, tempID)
應該可以正常工作。 在早期版本的Java中,您必須自己調用.intValue()
。
相反的工作原理...將int
賦給Integer
將自動使用Integer.valueOf(int)
自動生成int
。
Java將Integer轉換為int並自動返回(除非您仍然使用Java 1.4)。
另一種簡單的方法是:
Integer i = new Integer("10");
if (i != null)
int ip = Integer.parseInt(i.toString());
即使您使用的是Java 5 JDK,也許您將IDE的編譯器設置設置為Java 1.4模式? 否則,我同意已經提到過autoboxing / unboxbox的其他人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.