Как перенести объект из одного класса в другой класс - JAVA

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

Personality.JAVA

   Tree C = gson.fromJson(profile.toString(), Tree.class);  

                Tree.SubTree t = C.getTree(); 
                ArrayList<Children> mc = t.getChildren();
                Children c1 = mc.get(0);

                ArrayList<Children1> c2 = c1.getChildren();
                Children1 obj1 = c2.get(0);

                private Children1 obj1; //ERROR-ILEGAL START OF EXPRESSION 


                public Children1 getObj1(){
                return this.obj1;
               } 

         /**       ArrayList<child2> c3 = obj1.children;
                child2 obj2 = c3.get(0);

                ArrayList<child3> c4 = obj2.children;
                child3 obj3 = c4.get(0);  **/


                System.out.println(obj1.getPercentage()); //ERROR - IDENTIFIER EXPECTED

Children1.JAVA

   public class Children1 {
     private String category;
     private String id;
     private String name;
     private double percentage;
     private double sampling_error;
     private ArrayList<Children2> children;

    public Double getPercentage() {
     return percentage;
   }
/**
* 
* @param percentage
* The percentage
*/
    public void setPercentage(Double percentage) {
    this.percentage = percentage;
    }
}

Tree.JAVA (не уверен, нужен ли этот класс, но он здесь)

public class Tree {
    private SubTree tree;  
    @Override
    public String toString() {
        return "ID: " + id + "\n" + "Name: "+ "\n" + tree+ "\n" ;
    }  
    class SubTree{
    private String id;
    private String name;
    private ArrayList<Children> children; //Gets Arraylist from Class - Children


    public ArrayList<Children> getChildren() {
    return children;
    }

    public void setChildren(ArrayList<Children> children) {
    this.children = children;
    }     
    }

   public SubTree getTree() {
     return tree;
   }

    public void setTree() {
    this.tree = tree;
    }

}

CHART CLASS

private PieDataset createDataset(){
   Personality m = new Personality();
  // Personality.class = Personality();
    DefaultPieDataset result = new DefaultPieDataset();
    result.setValue("Value1",m.obj1 ); //attempted to get obj1 from Persoanlity Class
    result.setValue("Linux", 10);
    result.setValue("Mac", 25);
    return result;
}

Таким образом, общая программа - получить нормальный абзац, преобразовать в json, а затем проанализировать в java после использования значений java, чтобы получить график Так что в этом случае получить процентное значение obj1 показать в Chart class,

Надеюсь, вы, ребята, поняли вопрос и спасибо за ваше время:)

2 ответа

Решение

Вы должны сделать Children1 объект виден с Personality учебный класс. На данный момент это выглядит так obj1 это просто локальная переменная и ее область видна только этому локальному методу

Если в Личности, у вас есть поле Children1 obj1 тогда это может быть установлено локальным методом или конструктором. Если сфера Children1 obj1 был общедоступным ИЛИ желательно, чтобы у него был метод получения, тогда вы можете прочитать его из Chart class при условии, что Children1 obj1 создается в конструкторе т.е. Personality m = new Personality();

Предполагая, что ваш Personality класс выглядит примерно так

public Personailty {
   ....
}

тогда вы будете добавлять, чтобы это выглядело как

public Personailty {
   ....
   private Children1 obj1;

   public Children1 getObj1(){
      return this.obj1;
  } 
}

Возможное решение ниже, если у вас есть атрибут с именем obj1 в классе Personality.

Индивидуальный класс должен иметь:

private Children1 obj1;

public Children1 getObj1(){
    return this.obj1;
} 

,

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

ArrayList<Children1> c2 = c1.getChildren();
Children1 obj1 = c2.get(0);

в

ArrayList<Children1> c2 = c1.getChildren();
this.obj1 = c2.get(0);

И в вашем классе Chart

DefaultPieDataset result = new DefaultPieDataset();
result.setValue("Value1",m.getObj1()); //attempted to get obj1 from Persoanlity Class
Другие вопросы по тегам