【问题标题】:inner classes cannot have static declarations - public static final String[]内部类不能有静态声明 - public static final String[]
【发布时间】:2018-05-21 01:55:24
【问题描述】:

我在第 5 行有一个问题

public static final String[] CREATIVE_SDK_SCOPES = { "email", "profile", "address" };

内部类不能有静态声明

 public final class Keys {
    public static final String CREATIVE_SDK_CLIENT_ID = "xxxxxxxx";
    public static final String CREATIVE_SDK_CLIENT_SECRET = "xxxxxxxxx";
    public static final String CREATIVE_SDK_REDIRECT_URI = "xxxxxxxxxx";
    public static final String[] CREATIVE_SDK_SCOPES = { "email", "profile", "address" };
  }
  private static final String CREATIVE_SDK_CLIENT_ID = Keys.CREATIVE_SDK_CLIENT_ID;
  private static final String CREATIVE_SDK_CLIENT_SECRET = Keys.CREATIVE_SDK_CLIENT_SECRET;
  private static final String CREATIVE_SDK_REDIRECT_URI = Keys.CREATIVE_SDK_REDIRECT_URI;
  private static final String[] CREATIVE_SDK_SCOPES = Keys.CREATIVE_SDK_SCOPES;

你能解释一下这是什么意思以及如何解决它吗?

【问题讨论】:

  • 也将类 Keys 声明为静态。
  • 你有什么问题?
  • 我想说,甚至不用理会Keys 类。只需在外部类中直接给出所有这些常量的值,然后将它们设为public

标签: java android arrays string


【解决方案1】:

因为内部类与实例相关联,所以它本身不能定义任何静态成员。

https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

您必须改用静态嵌套类。

public static final class Keys {

Why can't inner classes declare static members?

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多