Как перенести объект из одного класса в другой класс - 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