首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法访问objects属性

我无法访问objects属性
EN

Stack Overflow用户
提问于 2018-07-19 09:18:01
回答 2查看 153关注 0票数 0

我做了一个叫Point的课。我在MainActivity上创建了一个名为"A“的对象。现在,我想要一些MainActivity上的方法,这些方法应该读取"A“的属性,但这是不可能的。为什么我不能访问我的自制对象"A“的类点?例如,“加法”方法不能读取对象"A“的属性"x”和"y“。为什么?

代码语言:javascript
复制
public class Point {

    public int x;
    public int y;
    public Map <String, Integer> paths = new HashMap<String, Integer>();

}

lll

代码语言:javascript
复制
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

代码语言:javascript
复制
 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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-19 09:19:52

尝试将您的Point A声明为全局的

代码语言:javascript
复制
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);

        }

    }
票数 1
EN

Stack Overflow用户

发布于 2018-07-19 09:23:31

将值传递给您的方法:-

代码语言:javascript
复制
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;

    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51418796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档