I think you're getting ahead of yourself. Before you look at an advanced concept like generics,
you should understand constructors.
When you instantiate an object, you pass it parameters. You are passing parameters named String str and Integer id.
The two issues here are that they do not exist (the reason for "can't find symbol String.") and they have spaces.
The proper way to do this would be:
Here, I am passing a string literal, "baseball", and an integer, 1. These are defined values, whereas your previous code passes undefined values to the constructor.