0

虽然看起来很简单,但我还是低下了头。

所以我有我的类Common.java作为:

    package com.spil.util;
       public class Common extends Fragment implements SubscriptionListener
         {
           String WEBSERVICE = "http://webservice.carrierservice.com/";  
         }

DownloadDataActivity.java为:

package com.spil.main;
public class DownloadDataActivity extends TimerTask {
String WEBSERVICE = "http://webservice.carrierservice.com/";    
}

我不想string WEBSERVICE重复,所以我想从 Common.java 访问它。

所以我Common.java改为string WEBSERVICE

  public static String WEBSERVICE = "http://webservice.carrierservice.com/"; 

然后在 中DownloadDataActivity.java,我将其访问为:

public static String WEBSERVICE = Common.WEBSERVICE ;

这很好用,但我的问题是:

将字符串变量更改为公共静态字符串变量只是为了在另一个类中访问它是一个好习惯,以及它将如何影响范围,因为我假设将此 url 设为公共将允许从任何地方访问它?

但是除了在每个类中定义两次 URL 之外,我没有找到任何替代方法。

4

2 回答 2

2

好吧,您可以声明一个常量 String 并将其保存在可以在应用程序级别访问的 Constants 类中。

public final class Constants {
    public static final String WEBSERVICE = "http://webservice.carrierservice.com/";
    // other application level constants
}

使用静态导入 as 访问应用程序中任何位置的常量:

package com.spil.main;

import static comp.app.util.Constants.WEBSERVICE;

public class DownloadDataActivity extends TimerTask {
   someMethod() {
      makeCallToService(WEBSERVICE, otherParams);
   }
}

这将是正确的做法。

要使用常量,好的做法是在各个类中使用常量,前提是这些常量不会在任何地方使用。

如果要从整个应用程序访问常量,您可以像上面一样在一个类中定义这些常量并使用上述方法。

于 2013-03-06T09:41:21.267 回答
1

是的,public 将使您可以从应用程序中的任何位置访问它。
这取决于字符串是否包含一些您不想暴露给代码其他部分的信息。您不希望其他开发人员(或您自己)从其他任何地方意外/无意地访问它,然后将其设为私有。
否则,即使意外访问也不会造成任何伤害,那么将其公开就可以了,这样您就可以避免几行冗余代码。
第二部分是如果您想允许其他部分更新您的属性。此外,如果您想对 String 使用相同的值,请使其成为最终值。
这可能有助于类属性声明:私有与公共

于 2013-03-06T09:14:20.960 回答