Основные цели java Runtime Exception и причины их возникновения, а также рекомендации по уклонению от java Runtime исключений - PullRequest
0 голосов
/ 26 апреля 2018

Здравствуйте, прагматичные программисты! У меня есть эта программа, разработанная мной, которая представляет собой программу для социальных сетей, написанную на Java, и основные функции этой программы - позволить пользователю: добавить друга, удалить друга, посмотреть, у кого больше всего друзья, посмотрите, кто имеет наибольшее влияние и возможность выхода из программы.

Как и в случае с любыми программами, будет всплеск или две, для меня это случай исключения времени выполнения java, который продолжает поддерживаться после того, как я попытался устранить проблему, посмотрев, будет ли она работать без основного пакета или если Я пытался изменить способ написания программы, но безрезультатно.

Это сообщение об ошибке, которое продолжает поддерживаться:

Select:
[1] Add Friend
[2] Delete Friend
[3] List Friends
[4] Friends of Friends
[5] Most Popular
[6] Most Influencer
[7] Exit
7
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: uelbook.Person
    at uelbook.UELbook.main(UELbook.java:20)

Строка 20 моего основного класса, UELbook, внизу:

 Person listfriends=new Person();

UELbook:

package uelbook;
import java.util.*;
import java.io.*;

public class UELbook {

    public static void main(String[] args) {
        UELbook uelbook = new UELbook();
        //test your code here
                Scanner scanner=new Scanner(System.in);
                System.out.println("Select:");
                System.out.println("[1] Add Friend");
                System.out.println("[2] Delete Friend");
                System.out.println("[3] List Friends");
                System.out.println("[4] Friends of Friends");
                System.out.println("[5] Most Popular");
                System.out.println("[6] Most Influencer");
                System.out.println("[7] Exit");
               int choice=scanner.nextInt();
               Person listfriends=new Person();
                while(choice!=7){
                 int num=0;   

                //ADD
                if(choice==1){
                System.out.println("ID: ");
                String id=scanner.nextLine();
                System.out.println("Username: ");
                String username=scanner.nextLine();
                System.out.println("Password: ");
                String password=scanner.nextLine();
                listfriends.set(id, username, password);
                listfriends.addFriend();
                }
                //DELETE
                if(choice==2){
                System.out.println("ID: ");
                String id=scanner.nextLine();
                System.out.println("Username: ");
                String username=scanner.nextLine();
                System.out.println("Password: ");
                String password=scanner.nextLine();
                listfriends.set(id, username, password);
                listfriends.removeFriend();
                }
                //LIST
                if(choice==3){
                    for(int i=0;i<1;i++){
                    System.out.println(listfriends.list);
                    }
                }

                System.out.println("ID: ");
                String id=scanner.nextLine();
                System.out.println("Username: ");
                String username=scanner.nextLine();
                System.out.println("Password: ");
                String password=scanner.nextLine();

                //REMOVE
                if(choice==7){
                System.exit(0);  
                }

                if(choice==8){
                    System.out.println("ERROR! Please choose from the options.");
                }

                }//WHILE LOOP EXIT
    }
    public void addPerson(String id, String firstname, String lastname) throws PersonExistsException {
        //list.add(ID);
               // list.add(firstname);
                //list.add(lastname);
    }
    public String getPerson(String id) throws NoSuchCodeException {
        return id; 
    }
    public void addFriendship(String id1, String id2) throws NoSuchCodeException {
            id1=id1;
            id2=id2;
    }
    public Collection<String> listFriends(String id) throws NoSuchCodeException {
        return null; 
    }
    public Collection<String> friendsOfFriends(String id) throws NoSuchCodeException {
        return null;
    }
    //The methods returns true if the file has been loaded, 
    //false in case of any errors
    public boolean loadFile(String file) {
        return false; // remove this in the implementation
    }
    //The methods returns true if the file has been saved, 
    //false in case of any errors
    public boolean saveFile(String file) {
        return false; // remove this in the implementation
    }
    public String mostPopular() {
        return null; // remove this in the implementation
    }
    public String mostInfluencer() {
        return null; // remove this in the implementation
    }
}

лицо:

package UELbook;

import java.util.*;
import java.io.*;

public class Person {

    String ID;
    String firstname;
    String lastname;
    ArrayList<String>list=new ArrayList<String>();

    public static void main(String[]args){

    }

    //CONSTRUCTOR
    public void set(String ID, String firstname, String lastname){
        setID(ID);
        setFirstName(firstname);
        setLastName(lastname);
    }

    //SETTERS
    public void setID(String ID){
        ID=ID;
    }

    public void setFirstName(String FirstName){
       firstname=FirstName;
    }

    public void setLastName(String LastName){
        lastname=LastName;
    }

    //GETTERS
    public String getID(){
        return ID;
    }

    public String getFirstName(){
        return firstname;
    }

    public String getLastName(){
        return lastname;
    }

     public void addPerson(String id, String firstname, String lastname) throws uelbook.PersonExistsException {
        list.add(ID);
                list.add(firstname);
                list.add(lastname);
    }   

}

человек существует исключение:

package uelbook;

@SuppressWarnings("serial")
public class PersonExistsException extends Exception {

}

Нет такого исключения кода:

package uelbook;

@SuppressWarnings("serial")
public class NoSuchCodeException extends Exception {

}

Любые полезные советы будут высоко оценены.

1 Ответ

0 голосов
/ 26 апреля 2018

Ваш человек класс использует пакет UELbook .

Предположительно, это должно быть uelbook .


(Обновлено для предоставления объяснения ....)

Это только соглашение (хотя и следовало 99,99% времени), что имя пакета должно быть в нижнем регистре. В качестве причины этого Oracle указывает следующее :

Имена пакетов пишутся строчными буквами , чтобы избежать конфликта с имена классов или интерфейсов .

В коде в ОП есть:

  • Пакет с именем UELbook
  • Другой пакет с именем uelbook
  • Класс с именем UELbook

Итак, вы столкнулись между классом UELbook и пакетом UELbook . Изменение имени пакета UELbook на uelbook должно решить вашу проблему с технической точки зрения. Однако в качестве связанной с этим проблемы следует изменить имя вашего пакета uelbook или класса UELbook , чтобы устранить всю неопределенность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...