1. ホーム
  2. java

[解決済み] Java のエラーです。「互換性のない型 "のメッセージ

2022-02-09 11:26:21

質問

Javaでコンパイル時にエラーが発生します。

UserID.java:36: error: incompatible types
            + generator.nextInt(10);
            ^
  required: String
  found:    int

以下はJavaのコードです。

public class UserID {

  private String firstName; 
  private String userId;  
  private String password;

  public UserID(String first) {
     Random generator = new Random();

     userId = first.substring(0, 3) + 
        + generator.nextInt(1) + 
       (generator.nextInt(7) + 3) + generator.nextInt(10);     //this works

     password = generator.nextInt(10) + generator.nextInt(10);   //Error is here

  } 
}

このエラーの理由と修正方法を教えてください。 なぜ、intを自動的にStringに昇格しないのですか?

解決方法を教えてください。

について password の行では、整数(連結する場合)を追加して、明示的なキャストなしに文字列に変換しています。

だから、このように

password = Integer.toString(generator.nextInt(10) + generator.nextInt(10)
        + generator.nextInt(10) + generator.nextInt(10)
        + generator.nextInt(10) + generator.nextInt(10));

で動作する理由は username というのは、整数に文字列を足して文字列にしているので、連結するときに暗黙のうちに文字列にキャストしているのです。