我做了一个叫Point的课。我在MainActivity上创建了一个名为"A“的对象。现在,我想要一些MainActivity上的方法,这些方法应该读取"A“的属性,但这是不可能的。为什么我不能访问我的自制对象"A“的类点?例如,“加法”方法不能读取对象"A“的属性"x”和"y“。为什么?
public class Point {
public int x;
public int y;
public Map <String, Integer> paths = new HashMap<String, Integer>();
}lll
public class MainActivity extends AppCompatActivity {
Point A, B, C, D;
int i;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.tv);
Point A = new Point();
A.x = 1;
A.y = 1;
A.paths.put("B", 1);
A.paths.put("C", 2);
addition();
}
private void addition() {
tv.setText(""+A.x);
}
}编辑:tv.setText(“+A.x);现在给我一个NullpointerExeption
Caused by: java.lang.NullPointerException: Attempt to read from field 'int com.example.georg.pathfinding.Point.x' on a null object reference
at com.example.georg.pathfinding.MainActivity.addition(MainActivity.java:57)
at com.example.georg.pathfinding.MainActivity.onCreate(MainActivity.java:49)发布于 2018-07-19 09:19:52
尝试将您的Point A声明为全局的
public class MainActivity extends AppCompatActivity {
Point A, B, C, D;
int i;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.tv);
A = new Point();
A.x = 1;
A.y = 1;
A.paths.put("B", 1);
A.paths.put("C", 2);
addition();
}
private void addition() {
tv.setText(""+A.x);
}
}发布于 2018-07-19 09:23:31
将值传递给您的方法:-
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Point A = new Point();
A.x = 1;
A.y = 1;
A.paths.put("B", 1);
A.paths.put("C", 2);
addition(A.x, A.y);
}
private void addition(int a, int b) {
int i;
i = a + b;
}
}https://stackoverflow.com/questions/51418796
复制相似问题