program story

정수를 정수로 변환하는 방법?

inputbox 2020. 10. 30. 08:00
반응형

정수를 정수로 변환하는 방법?


클라이언트와 서버 사이에서 데이터가 전송되는 웹 응용 프로그램에서 작업 중입니다.

나는 이미 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();상황을 더 복잡하게 만듭니다. 다른 변환 방법이나 변환 기술이 있습니까?

어떤 수정이라도 더 좋을 것입니다.


이미 다른 곳에 쓰여진대로 :

  • Java 1.5 이상에서는 (거의) 아무것도 할 필요가 없으며 컴파일러에 의해 수행됩니다.
  • Java 1.4 이하의 경우 Integer.intValue()Integer에서 int로 변환 하는 사용 합니다.

그러나 당신이 쓴대로, an 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  

* 기본값 0을 사용하면 아무것도하지 않거나 경고를 표시하거나 ...

저는 대부분 오토 박싱 (두 번째 샘플 라인)을 사용하지 않는 것을 선호하므로 무엇을하고 싶은지 분명합니다.


Java 5를 사용 setInt하고 Integer있다고 말했기 때문에 autounboxing으로 인해 사용할 수 있습니다 pstmt.setInt(1, tempID). 잘 작동해야합니다. 이전 버전의 Java에서는 .intValue()자신 을 호출해야했습니다 .

반대의 경우도 마찬가지 입니다. 에을 할당하면 int을 사용하여 Integer자동으로 자동 int박싱됩니다 Integer.valueOf(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 / unboxing에 대해 언급 한 다른 사람들의 의견에 동의합니다.

참고 URL : https://stackoverflow.com/questions/3571352/how-to-convert-integer-to-int

반응형