【问题标题】:java/android - long is set to -1 for no apparent reasonjava/android - long 设置为 -1 没有明显的原因
【发布时间】:2013-01-08 13:05:34
【问题描述】:

我正在调用一个带有 long 的构造函数。然而,长字段设置为 -1:

LogCat:“将包的 id 设置为 -29270339915449391104。getID() 现在返回 -1”

我不知道为什么。如果你投入很长时间,那么应该没有任何转换问题?我错过了什么?

private long ID;

public AFileOrPackView(Context context, long ID) {
    super(context);

    this.ID = ID;
    Log.d("asd", "set the pack's id to " + ID + ". getID() now returns " + this.getId());
}

public Long getID() {
    return this.ID;
}

【问题讨论】:

    标签: java android constructor field long-integer


    【解决方案1】:

    您的代码中有错字。

    this.getId()

    应该是

    this.getID()
    

    另外,如果您不需要,或者返回 Long 对象,您应该返回 long 原始类型。 改变:

    public Long getID() {
        return this.ID;
    }
    

    public long getID() {
        return this.ID;
    }
    

    【讨论】:

    • 第二个 ) 正在关闭 Log's d 方法。不是错字。
    • @RobAveryIV 你在说什么?
    • @blackbelt 我的错,一开始你有两个)。认为那是您所说的“错字”。
    • @blackbelt,就像 OP 所说,“... -1 没有明显的原因”;)
    • 哇,你们真快。谢谢您的帮助!我确实用小写的 d 调用 getId() - 它来自 Android.View。
    【解决方案2】:

    您是否要扩展现有的 Android 视图类型?如果您尝试返回不属于带有 id 的布局文件的 View 的 id,或者显式给出 id,则继承的 id 值将是 -1 表示 NO_ID。

    只是一个想法,由于问题中的信息有限,很难判断是否是这种情况。

    【讨论】:

    • 绝对是这样,你是对的。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多