相关疑难解决方法(0)

为什么我们不能在(非静态)内部类中使用静态方法?

为什么我们不能在非静态内部类中使用静态方法?

如果我使内部类静态,它的工作原理.为什么?

java static class inner-classes

140
推荐指数
4
解决办法
7万
查看次数

为什么Java禁止内部类中的静态字段?

class OuterClass {
 class InnerClass {
  static int i = 100; // compile error
  static void f() { } // compile error
 }
} 
Run Code Online (Sandbox Code Playgroud)

虽然无法访问静态字段OuterClass.InnerClass.i,但如果我想记录一些应该是静态的东西,例如创建的InnerClass对象的数量,那么将该字段设置为静态会很有帮助.那么为什么 Java禁止内部类中的静态字段/方法呢?

编辑:我知道如何使编译器满意静态嵌套类(或静态内部类),但我想知道的是为什么java禁止语言设计和内部类(或普通内部类)内的静态字段/方法实施方面,如果有人了解更多.

java static-members inner-classes

79
推荐指数
7
解决办法
3万
查看次数

片段内部类应该是静态的

我有一个FragmentActivity应该显示内部类的类Dialog.但我需要成功static.Eclipse让我可以用来抑制错误@SuppressLint("ValidFragment").如果我这样做是不好的风格,可能的后果是什么?

public class CarActivity extends FragmentActivity {
//Code
  @SuppressLint("ValidFragment")
  public class NetworkConnectionError extends DialogFragment {
    private String message;
    private AsyncTask task;
    private String taskMessage;
    @Override
    public void setArguments(Bundle args) {
      super.setArguments(args);
      message = args.getString("message");
    }
    public void setTask(CarActivity.CarInfo task, String msg) {
      this.task = task;
      this.taskMessage = msg;
    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
      // Use the Builder class for convenient dialog construction
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      builder.setMessage(message).setPositiveButton("Go back", new …
Run Code Online (Sandbox Code Playgroud)

android fragment android-dialogfragment

69
推荐指数
4
解决办法
5万
查看次数