debbuger中不可见静态变量字段

时间:2016-09-21 11:46:57

标签: java debugging android-studio intellij-idea

您好,我有一个非常简单的类定义如下

public class Pokus {


    public static String loginToken;
    public String neco = "neco";

    public Pokus() {
    }

    public static String getLoginToken() {
        return loginToken;
    }

    public static void setLoginToken(String loginToken) {
        Pokus.loginToken = loginToken;
    }
}

当我创建此类的实例时

Pokus pokus = new Pokus();
pokus.setLoginToken("bla1212");

在调试器中,我可以看到对象pokus有一个字段/变量叫做#34; neco"但不是那个静态变量" loginToken"。

debbuger in Android Studio

有没有办法看到静态变量以及非静态变量?

4 个答案:

答案 0 :(得分:11)

谢谢大家,我知道所有这些,但不知道调试器正在考虑这一点。可以选择显示静态字段设置>构建,执行,部署>调试器>数据视图>爪哇

答案 1 :(得分:2)

调试器正确显示它,<form #form="ngForm"> <div *ngFor="item in items"> <input name="product-{{item.id}}" [(ngModel)]="item.qty" #????="ngModel" validateQuantity> <button (click)="addItemToCart(item)" [disabled]="!????.valid">Add to cart</button> </div> <button (click)="addAll()" [disabled]="!form.valid">Add all</button> </form> 是类pokus的实例,因此它具有类Pokus的标准方法和属性,静态方法和属性在Class中不在Class的实例中。对于从类Pokus创建的每个对象(或者如果它们是公共的,则为程序中的每个组件)共享静态属性,因此调试器不会将它们显示为单个实例的属性。

显示静态变量检查类而不是实例。调试器在断点处停止时您可以使用控制台并写入Pokus,您将看到当前值。控制台在调试器中可用 - http://imgur.com/a/nHfEo

答案 2 :(得分:1)

静态变量对于类的所有实例具有相同的值。此外,它们应该使用类而不是类的实例来访问。在Java中,当你将某些东西声明为静态时,你会说它是类的成员,而不是对象(因此只有一个)。因此,在对象上访问它是没有意义的,因为该特定数据成员与该类相关联。 这就是我认为调试器没有显示并且它是正确行为的原因

答案 3 :(得分:0)

您可以右键单击调试器的 Variables 区域并选择 Customize Data Views...

在那里,您可以选择添加静态和最终静态字段。