Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未在默认构造函数中初始化变量_Java - Fatal编程技术网

Java 未在默认构造函数中初始化变量

Java 未在默认构造函数中初始化变量,java,Java,我有以下代码,当我尝试在“private final repository repository;”代码位中导入repository类时,我会在其中得到上述错误代码 我曾尝试添加“私有对象存储库”,但随后在“私有最终存储库”上得到了“变量存储库已在类restaurant controller中定义”。无论在哪里调用'repository.store'方法,我都会得到一个“找不到Object类型的符号方法存储(字符串)位置变量存储库” package controllers; import he

我有以下代码,当我尝试在“private final repository repository;”代码位中导入repository类时,我会在其中得到上述错误代码

我曾尝试添加“私有对象存储库”,但随后在“私有最终存储库”上得到了“变量存储库已在类restaurant controller中定义”。无论在哪里调用'repository.store'方法,我都会得到一个“找不到Object类型的符号方法存储(字符串)位置变量存储库”

package controllers;

import helpers.InputHelper;
import helpers.InputHelper;
import repositories.Repository;
import model.Restaurant;
import model.Review;


public class RestaurantController {
    InputHelper inputHelper = new InputHelper();
    char c = inputHelper.readCharacter("A:Restaurant Name -B: Review -C: Location -D: Rating");
    static char DELIMITER=',';
    **private final Repository repository;**


    public void run() {
        boolean quit = false;

        do {
            char choice = displayMenu();
            switch (choice) {
                case 'A': 
                    addRestaurant();
                    String name = inputHelper.readString("Enter Restaurant Name: ");               
                    repository.store(name); 
                    System.out.println("Restaurant Name is: " + name);

                    break;
                case 'B':  
                    addReview();
                    String review = inputHelper.readString("Enter Restaurant Review: ");               
                    repository.store(review); 
                    break;
                case 'C': 
                    listLocationRestaurantDataInNameOrder();
                    String location = inputHelper.readString("Enter Restaurant Location : ");               
                    repository.store(location); 
                    break;                    
                case 'D': 
                    listRestaurantRatings();
                    String rating = inputHelper.readString("Enter Restaurant Rating : ");               
                    repository.store(rating); 
                    break;
                case 'Q': 
                    quit = true;
            }
        } while (!quit);
    }

    private char displayMenu() {
        listRestaurantDataInIdOrder();
        InputHelper inputHelper = new InputHelper();
        System.out.print("\nA. Add Restaurant");
        System.out.print("\tB. Add Restaurant Review");        
        System.out.print("\tC. List Location Restaurant Data In Name Order");
        System.out.print("\tD. List Restaurant Ratings");       
        System.out.print("\tQ. Quit\n");         
        return inputHelper.readCharacter("Enter choice", "ABCDQ");
    }    

    private void addRestaurant() {
        System.out.format("\033[31m%s\033[0m%n", "Add Restaurant");
        System.out.format("\033[31m%s\033[0m%n", "==============");

    }

    private void addReview() {        
        System.out.format("\033[31m%s\033[0m%n", "Add Restaurant Review");
        System.out.format("\033[31m%s\033[0m%n", "=====================");       
    }    


    private void listLocationRestaurantDataInNameOrder() {        
        System.out.format("\033[31m%s\033[0m%n", "Name Order");
        System.out.format("\033[31m%s\033[0m%n", "==========");
    }    

    private void listRestaurantRatings() {
        System.out.format("\033[31m%s\033[0m%n", "Restaurant Ratings");
        System.out.format("\033[31m%s\033[0m%n", "==================");   
    }    

    private void listRestaurantDataInIdOrder() {        
        System.out.format("\033[31m%s\033[0m%n", "Restaurant Id Order");
        System.out.format("\033[31m%s\033[0m%n", "===================");
    }     
}


您尚未初始化
存储库
,因此出现错误。不能对未初始化的对象调用方法

您需要使用存储库创建控制器

public class RestaurantController {

    private final Repository repository;

    public RestaurantController(Repository r) {
        this.repository = r;
    }
否则,您定义了一个未初始化的final变量,该变量无效。您可以删除
final
,但该值将为
null