相关疑难解决方法(0)

Java中的public,protected,package-private和private有什么区别?

在Java中,有没有关于何时使用每个访问修饰符,即默认明确的规则(包私有)public,protected并且private,同时使classinterface和处理继承?

java private protected public access-modifiers

3004
推荐指数
24
解决办法
201万
查看次数

449
推荐指数
8
解决办法
32万
查看次数

Java:静态vs内部类

静态和非静态嵌套类有什么区别?

java static inner-classes

355
推荐指数
5
解决办法
27万
查看次数

为什么在匿名类中只能访问最终变量?

  1. a只能在这里决赛.为什么?如何aonClick()不将其保留为私有成员的情况下重新分配方法?

    private void f(Button b, final int a){
        b.addClickHandler(new ClickHandler() {
    
            @Override
            public void onClick(ClickEvent event) {
                int b = a*5;
    
            }
        });
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如何5 * a点击它返回?我的意思是,

    private void f(Button b, final int a){
        b.addClickHandler(new ClickHandler() {
    
            @Override
            public void onClick(ClickEvent event) {
                 int b = a*5;
                 return b; // but return type is void 
            }
        });
    }
    
    Run Code Online (Sandbox Code Playgroud)

java event-handling anonymous-class

341
推荐指数
7
解决办法
11万
查看次数

什么时候使用(匿名)内部类确切泄漏?

我一直在阅读一些有关Android内存泄漏的文章,并观看了Google I/O 关于此主题的有趣视频.

尽管如此,我还是不完全理解这个概念,特别是当在Activity中使用内部类是安全或危险的时候.

这就是我的理解:

如果内部类的实例比其外部类(活动)存活的时间更长,则会发生内存泄漏.- > 在哪种情况下会发生这种情况?

在这个例子中,我认为没有泄漏的风险,因为匿名类扩展没有办法OnClickListener比活动更长寿,对吧?

    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialog_generic);
    Button okButton = (Button) dialog.findViewById(R.id.dialog_button_ok);
    TextView titleTv = (TextView) dialog.findViewById(R.id.dialog_generic_title);

    // *** Handle button click
    okButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    titleTv.setText("dialog title");
    dialog.show();
Run Code Online (Sandbox Code Playgroud)

现在,这个例子是危险的,为什么?

// We are still inside an Activity
_handlerToDelayDroidMove = new Handler();
_handlerToDelayDroidMove.postDelayed(_droidPlayRunnable, 10000);

private Runnable _droidPlayRunnable = new Runnable() { 
    public void run() {
        _someFieldOfTheActivity.performLongCalculation(); …
Run Code Online (Sandbox Code Playgroud)

java android memory-leaks inner-classes

313
推荐指数
1
解决办法
5万
查看次数

Java - 不能访问类型为Foo的封闭实例

我有以下代码:

class Hello {
    class Thing {
        public int size;

        Thing() {
            size = 0;
        }
    }

    public static void main(String[] args) {
        Thing thing1 = new Thing();
        System.out.println("Hello, World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道Thing什么都不做,但我的Hello,World程序在没有它的情况下编译得很好.这只是我定义的类失败了.

它拒绝编译.我开始No enclosing instance of type Hello is accessible."创造一个新的东西.我猜是:

  1. 我有系统级问题(在DrJava或我的Java安装中)或
  2. 我对如何在java中构建一个工作程序有一些基本的误解.

有任何想法吗?

java inner-classes

297
推荐指数
5
解决办法
23万
查看次数

变量在内部类中访问.需要宣布最终

所以标题说明了一切.我的内部出现了编译错误onClick.

这是代码.

public class fieldsActivity extends Activity {

Button addSiteButton;
Button cancelButton;
Button signInButton;


/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // to create a custom title bar for activity window
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.fields);
    // use custom layout title bar
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.topbar);

    Pager adapter = new Pager();
    ViewPager mPager = (ViewPager) findViewById(R.id.fieldspager);
    mPager.setAdapter(adapter);
    mPager.setCurrentItem(1);



    addSiteButton = (Button) findViewById(R.id.addSiteButton);
    addSiteButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
           mPager.setCurrentItem(2, true); …
Run Code Online (Sandbox Code Playgroud)

java android

107
推荐指数
5
解决办法
17万
查看次数

创建服务时没有空构造函数

我正在努力解决这个错误:

08-08 11:42:53.179:E/AndroidRuntime(20288):引起:java.lang.InstantiationException:无法实例化类com.example.localnotificationtest.ReminderService; 没有空的构造函数

我不明白为什么会出现这种错误.

我试图在特定时间出现通知,并在搜索一段时间后,我发现这个旧的stackoverflow问题.我尝试了一切,但我的代码给出了错误.

请帮我解决这个问题.

这是我的MainActivity代码:

public class MainActivity extends Activity {
    int mHour, mMinute;
    ReminderService reminderService;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        reminderService = new ReminderService("ReminderService");

        TimePickerDialog dialog = new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, false);
        dialog.show();
    }

    TimePickerDialog.OnTimeSetListener mTimeSetListener =  new OnTimeSetListener() {

        @Override
        public void onTimeSet(TimePicker v, int hourOfDay, int minute) {
            mHour = hourOfDay;
            mMinute = minute;

            AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
            Calendar c = Calendar.getInstance();
            c.set(Calendar.YEAR, Calendar.YEAR);
            c.set(Calendar.MONTH, Calendar.MONTH);
            c.set(Calendar.DAY_OF_MONTH, Calendar.DAY_OF_MONTH); …
Run Code Online (Sandbox Code Playgroud)

java android

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

静态方法和非静态方法有什么区别?

请参阅下面的代码段:

代码1

public class A {
    static int add(int i, int j) {
        return(i + j);
    }
}

public class B extends A {
    public static void main(String args[]) {
        short s = 9;
        System.out.println(add(s, 6));
    }
}
Run Code Online (Sandbox Code Playgroud)

代码2

public class A {
    int add(int i, int j) {
        return(i + j);
    }
}

public class B extends A {
    public static void main(String args[]) {
    A a = new A();
        short s = 9;
        System.out.println(a.add(s, 6));
    }
}
Run Code Online (Sandbox Code Playgroud)

这些代码片段有什么区别?两者都 …

java

66
推荐指数
5
解决办法
24万
查看次数

"object.new"如何运作?(Java有.new运算符吗?)

我今天在阅读Accelerated GWT(Gupta)时遇到了这段代码- 第151页.

public static void getListOfBooks(String category, BookStore bookStore) {
    serviceInstance.getBooks(category, bookStore.new BookListUpdaterCallback());
}
public static void storeOrder(List books, String userName, BookStore bookStore) {
    serviceInstance.storeOrder(books, userName,    bookStore.new StoreOrderCallback());
}
Run Code Online (Sandbox Code Playgroud)

这些新运营商在那里做什么?我从未见过这样的语法,任何人都可以解释一下吗?

有谁知道在java规范中哪里可以找到这个?

java syntax inner-classes

65
推荐指数
1
解决办法
1万
查看次数