有 Java 编程相关的问题?

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

java如果我想在一个新线程中做一些事情,为什么我必须将最后一个对象发送到参数列表?

例如,我尝试在单独的线程中执行一些操作:

public void shareQuote(final Context context, final ArrayList<Quote> quotes, final int number) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
        Toast warningWindow = Toast.makeText(context, context.getString(R.string.shareWarning), Toast.LENGTH_SHORT);
    } else {
        new Thread(new Runnable() {
            @Override
            public void run() {
                // Creates new intent for sharing
                Intent shareIntent = new Intent(Intent.ACTION_SEND);

                shareIntent.setType(SHARE_TYPE_TEXT);
                String subject = context.getString(R.string.quotes_author);
                String sharingQuote = "\"" + quotes.get(number).getText() + "\"" + "\n";
            }
        }).start();
    }

如果我想在新线程中执行某些操作,为什么我必须将最终对象发送到参数列表


共 (1) 个答案

  1. # 1 楼答案

    因为anonymous classes只能通过设计访问final参数(和final局部变量)