Подтвердить что ты не робот

Как преобразовать Integer в int?

Я работаю над веб-приложением, в котором данные будут передаваться между клиентской и серверной сторонами.

Я уже знаю, что JavaScript int!= Java int. Потому что Java int не может быть null, правильно. Теперь это проблема, с которой я сталкиваюсь.

Я изменил свои внутренние переменные Java на 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(); Но это усложняет ситуацию. Есть ли у нас какие-либо другие методы преобразования или методы преобразования?

Любое исправление будет лучше.

4b9b3361

Ответ 1

Как уже написано в другом месте:

  • Для Java 1.5 и более поздних версий вам не нужно делать (почти) ничего, что было сделано компилятором.
  • Для Java 1.4 и ранее используйте Integer.intValue() для преобразования из Integer в int.

НО, как вы написали, Integer может быть нулевым, поэтому разумно проверить это, прежде чем пытаться преобразовать в 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  

* используя значение по умолчанию нуля, также ничего не может сделать, показать предупреждение или...

В основном я предпочитаю не использовать autoboxing (вторая строка выборки), поэтому ясны, что я хочу делать.

Ответ 2

Поскольку вы говорите, что используете Java 5, вы можете использовать setInt с Integer из-за autounbing: pstmt.setInt(1, tempID) должно работать нормально. В более ранних версиях Java вам пришлось бы вызывать .intValue() самостоятельно.

Противоположно также... присваивание int Integer автоматически приведет к отключению int с помощью Integer.valueOf(int).

Ответ 3

Java преобразует Integer в int и обратно автоматически (если вы еще не используете Java 1.4).

Ответ 4

Возможно, у вас есть параметры компилятора для вашей среды IDE, установленной в режиме Java 1.4, даже если вы используете Java 5 JDK? В противном случае я согласен с другими людьми, которые уже упомянули автобоксинг/распаковку.

Ответ 5

Еще один простой способ:

Integer i = new Integer("10");

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