当前位置: 首页 > 知识库问答 >
问题:

变量[duplicate]的非法修饰符

商皓
2023-03-14

我目前正在从我找到的教程在Eclipse中构建一个应用程序,但我在代码中有错误。

我在下面包含了主要活动文件(MainActivity.java):

package com.example.youdothemath;

import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.R;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View.OnClickListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener 
{
    private Button playBtn, helpBtn, highBtn;

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //error

        playBtn = (Button)findViewById(R.id.play_btn); //error
        helpBtn = (Button)findViewById(R.id.help_btn); //error
        highBtn = (Button)findViewById(R.id.high_btn); //error

        playBtn.setOnClickListener(this);
        helpBtn.setOnClickListener(this);
        highBtn.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) 
    {
        //respond to clicks
        if(view.getId()==R.id.play_btn)
        {
            //play button
            private String[] levelNames = {"Easy", "Medium", "Hard"};
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Choose a level")
            .setSingleChoiceItems(levelNames, 0, new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog, int which) 
                {
                    dialog.dismiss();
                    //start gameplay
                    startPlay(which);
                }

            });

            AlertDialog ad = builder.create();
            ad.show();
        }

        else if(view.getId()==R.id.help_btn)
        {
            //how to play button
            Intent helpIntent = new Intent(this, HowToPlay.class);
            this.startActivity(helpIntent);
        }
        else if(view.getId()==R.id.high_btn)
        {
            //high scores button
            Intent highIntent = new Intent(this, HighScores.class);
            this.startActivity(highIntent);
        }
    }

    private void startPlay(int chosenLevel)
    {
        //start gameplay
        Intent playIntent = new Intent(this, PlayGame.class);
        playIntent.putExtra("level", chosenLevel);
        this.startActivity(playIntent);
    }
 }

错误是这样写的

private String[] levelNames = {"Easy", "Medium", "Hard"}; 

存在“变量levelNames的非法修饰符;只允许使用final”

有人有什么想法吗?

共有1个答案

阮阳曦
2023-03-14

这是一个局部变量。您不需要将其声明为私有,因为它对其作用域已经是私有的。你可以通过把它放在方法之外,但是放在类里面,把它变成一个字段,在那里,private修饰符是有效的。

 类似资料:
  • 我写的代码有一个错误消息。一切都应该是好的,因为这些例子都有相同的代码,但是不知何故我得到了一个错误。错误消息说: 期望令牌上 ")",; 语法错误-参数onOptionsItem选择的非法修饰符;只允许最终-期望令牌 "(",; 语法错误

  • 所以我对Java还是新手,所以这可能真的很愚蠢,但我找不到答案,所以我们开始吧!在我的代码的开头,我试图简单地用“public class robot{}”来声明这个类,然而,它给了我一个错误“本地类的非法修饰符___;;只允许使用抽象或final”。我在互联网上看到的每一个地方,它都说不要称之为静态类,但我不是!!!这可能真的很蠢,我还不知道,因为我还是新手。请帮忙!这是我的代码:

  • 我试图理解decorator是如何工作的,我想知道一个修饰过的函数是否可以访问decorator的变量。例如,在下面的代码中,如何使f1能够访问localVariable?这可能吗?这是一种很好的做事方式吗?

  • 本文向大家介绍smarty模板引擎中变量及变量修饰器用法实例,包括了smarty模板引擎中变量及变量修饰器用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了smarty变量及变量修饰器的应用。分享给大家供大家参考。具体如下: 模板文件:temp.htm: php文件:index.php 希望本文所述对大家的php程序设计有所帮助。

  • 我是爪哇的新手,我想在爪哇做一个学校的任命。这是一个遵循MVC模式的小游戏(我不知道它应该如何工作,我所了解的只是这个方法在“包”中分离代码,所以我们只需要修改一些包中的元素,例如,使游戏看起来完全不同;对吗?)。 因此,我们使用JFrame和JPanel包创建了一个启动框架。现在是时候在控制器包中的类名“Control”中创建main()方法了: 现在,我的老师要求我:“私下声明StartupG

  • Java提供了许多非访问修饰符来实现许多其他功能。 用于创建类方法和变量的static修饰符。 用于完成类,方法和变量的实现的final修饰符。 用于创建抽象类和方法的abstract修饰符。 synchronized和volatile修饰符,用于线程。 静态修改器 静态变量 static关键字用于创建独立于为类创建的任何实例而存在的变量。 无论类的实例数是多少,都只存在一个静态变量副本。 静态变