有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将公共类放入交换机外壳中

在public类中,我们需要基于包名的switchcase,在每种情况下,我们都调用一个公共URL。。我试过这种方法,但开关箱不起作用

public class AllChanges {

    Context context;
Switch(getPackageName()) {
        case "com.agilerise.package1":
            public static String gurl = "http://google.com/index.php";

            break;

        case "com.agilerise.package2":
public static String gurl = "http://bing.com/index.php";
  case "com.agilerise.package2":
public static String gurl = "http://stackoverlfow.com/index.php";

            break;
    }


}

共 (2) 个答案

  1. # 1 楼答案

    更好的方法是在这里使用多态性

    您应该定义一个接口,而不是检查classes包(它可能会发生变化,并导致子类的重复条目):

    interface SearchEngineSelector{
      URL getSearchEngineUrl(); 
    }
    

    然后就有了带有默认方法的专用子接口:

    interface GoogleSearchEngineSelector extends SearchEngineSelector{
      URL THE_URL = new URL("http://google.com/index.php");
      default public URL getSearchEngineUrl(){
         return THE_URL; 
    }
    

    然后,您的类可以实现其中一个专用子接口:

    class SomeClass implements GoogleSearchEngineSelector {
       // ...
    }
    

    您的代码将更改为:
    因为对于一个子类没有什么可做的

  2. # 2 楼答案

    Java不是这样工作的。您只能在Java中的functions内编写语句。变量的声明可以在functions之外的class中出现