I am getting an error in Java during compilation:
UserID.java:36: error: incompatible types
            + generator.nextInt(10);
            ^
  required: String
  found:    int
Here is the Java code:
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
  } 
}
What is the reason for this error and how do I fix it? Why is it not automatically promoting the int to a String?
There are 3 types of Errors: Syntax Error. Runtime Error. Logical Error.
On the password line, you're adding Integers(When you want to be concatenating them) and putting it into a string without an explicit cast.You'll have to use Integer.toString()
So like this
password = Integer.toString(generator.nextInt(10) + generator.nextInt(10)
        + generator.nextInt(10) + generator.nextInt(10)
        + generator.nextInt(10) + generator.nextInt(10));
The reason it works in username is because you have Strings being added to integers the put into a String, so it's implicitly casting it to a String when concatinating.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With