2013-07-02 6 views
-5

У меня есть два класса:Java/мои классы не видят друг друга?

Модель/User.java

package Model; 

public class User { 
    public int id; 
    public String firstName; 
    public String lastName; 

    User(int id, String firstName, String lastName) 
    { 
     this.id = id; 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 
} 

и

репозиториях/UserRespository.java

package Repositories; 
import Model.User; 

public class UserRepository 
{ 
    public User CreateUser(int id, String firstName, String lastName) 
    { 
     User newUser = new User(id, firstName, lastName); 
     return newUser; 
    } 

    public User GetUserById() 
    { 
     User user = new User(id, firstName, lastName); 
     return user; 
    } 
} 

Я получаю эти ошибки :

firstName cannot be resolved MVCExample/src/Repositories UserRepository.java line 14 1372765344696 53 

id cannot be resolved MVCExample/src/Repositories UserRepository.java line 14 1372765344695 52 

lastName cannot be resolved MVCExample/src/Repositories UserRepository.java line 14 1372765344696 54 

The constructor User(int, String, String) is not visible MVCExample/src/Repositories UserRepository.java line 8 1372765344695 51 

Что я делаю неправильно?

+0

ваш 'GetUserById' является проблемой. Вам нужно передать значения, чтобы передать их конструктору 'User'. – JHS

ответ

4

Вы должны сделать конструктор класса User как public.

+0

Спасибо !!!! Я понятия не имел, что должен был это сделать. Спасибо друг! – Jimmyt1988

1
User user = new User(id, firstName, lastName); 

Вы используете это без объявления id, firstName и lastName

0

в этой части кода:

public User GetUserById() 
{ 
    User user = new User(id, firstName, lastName); 
    return user; 
} 

вы не объявляя ID, FirstName и LastName, вам нужно объявить их в качестве переменных экземпляра, если вы хотите, чтобы они были доступны, также в этой части:

User(int id, String firstName, String lastName) 
{ 
    this.id = id; 
    this.firstName = firstName; 
    this.lastName = lastName; 
} 

вам необходимо объявить ваш конструктор общественностью.

0

Измените метод

public User GetUserById(int id, String firstName, String lastName) 
    { 
     User user = new User(id, firstName, lastName); 
     return user; 
    } 
0

Сделайте свой конструктор пользователя класса общедоступными, как:

public User(int id, String firstName, String lastName) 
    { 
     this.id = id; 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 
Смежные вопросы